[日常] 项目中业务绑定手机验证手机号的实现

在进行设置自动转发,增删来信规则,修改密码等操作时,增加必须绑定手机并且验证手机号的安全认证操作.在这个过程中使用控制反转的设计模式封装一个单独的类可以灵活的复用代码和调整逻辑

首先定义一个SecureTel的class类,这个类里面提供所有业务方法.在生成SecureTel对象的时候,需要使用框架内提供的一个生成对象的方法来操作,不能直接去new这个类,这个方法就是Sina_Application::resource(‘securetel‘),在这个生成器中,会去调用SecureTel类中的createResource方法,并且会把配置文件中对应该类的参数传递进去.

SecureTel类就可以在自身的createResource方法中进行new自己这个对象,并且可以把配置文件的参数设置到自己的属性里,在其他的方法中可以根据属性进行业务判断

通过上面的处理,可以灵活的使用这个类在各个接口的控制器代码中,达到复用代码的目的.并且可以直接在配置文件中对这个类里面的属性进行控制,方便在进行业务调整时不去修改类内部的逻辑

上面是在代码层面的设计,下面是在业务的层面介绍一下
1.请求过来后,因为在这个逻辑中是不会有高并发的情况,直接查询数据库绑定手机表,判定是否已经绑定手机.如果没有绑定手机直接返回对应的错误码
2.绑定了手机情况下,要去memcache查询是否已经验证过了,key就是"c:[email protected]",这个key的过期时间是一天,如果有值,说明验证过了,没值就返回另一个错误码
3.在配置文件中,可以配置是否开启这个手机验证功能,防止在短信接口不能用时,影响用户操作,可以直接关闭所有业务的验证功能.这个配置对应
SecureTel类中的一个属性,其他方法对这个属性进行判定
4.在配置文件可以配置验证后的过期时间,这个在测试中可以进行灵活修改,让测试人员短期可以多次测试.
5.前端根据不同的错误码,进行不同的弹窗,绑定手机的弹窗和验证手机的弹窗

原文地址:https://www.cnblogs.com/taoshihan/p/11727718.html

时间: 2024-10-28 11:51:06

[日常] 项目中业务绑定手机验证手机号的实现的相关文章

DotNet项目中的一些常用验证操作

在项目中需要对用户输入的信息,以及一些方法生成的结果进行验证,一般在项目中较多的采用js插件或js来进行有关信息的校验,但是从项目安全性的角度进行考虑,可对系统进行js注入. 如果在后台对用户输入的信息进行验证会相对的安全,在出现信息验证不合法时,可以直接在程序中抛出异常,终止程序的运行. 现在提供几种较为常用的验证方法,可以减少在项目中开发时间和错误性: 1.判断域名:         /// <summary>         /// 普通的域名         /// </summ

spring 项目中使用 hibernate validator验证输入参数

1 hibernate validator 官方文档:https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/ 在 springboot 项目中 spring-boot-starter-web 已经包含了 hibernate-validator 可以直接使用.否则需要在 maven 依赖中添加依赖项. <dependency> <groupId>org.hibernate.valid

JAVA WEB项目中生成验证码及验证实例(附源码及目录结构)

[我是一个初学者,自己总结和网上搜索资料,代码是自己敲了一遍,亲测有效,现将所有的目录结构和代码贴出来分享给像我一样的初学者] 作用 验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答.可以防止恶意破解密码.刷票.论坛灌水.有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录. 原理 在servlet中随机生成一个指定位置的验证码,一般为四位,然后把该验证码保存到session中.在

项目中业务编号的实现(业务码+日期+自增序列)

目录 1. 实现思路 2. 代码实现 3. 总结 参考 做项目的时候,经常会有自动生成业务编码的需求,比如插入数据的时候需要生成如下产品编号:P-(年份日期和三位序列号),比如P-20180727001 1. 实现思路 使用业务编号+当前日期获得redis的key值; 使用redis的incr来原子性地获得其对应的自增数; 避免redis的数据冗余,需要在第一次incr的时候使用expireAt设置其数据当天24点过期. 这样即可在并发情况下获得不重复的相应编码. 2. 代码实现 public

关于vue的前端项目中token使用以及验证机制 携带token登录详情 vue-router的跳转说明

在login.vue中通过发送http请求获取token//根据api接口获取tokenvar url = ‘http://www.baidudd.com’ + "/session";this.$axios.post(url, {username: this.loginForm.username,password: this.loginForm.pass}).then(res => {// console.log(res.data);this.$message.success('

在Maven项目中关于SSM框架中邮箱验证登陆

1.你如果要在maven项目中进行邮箱邮箱验证,你首先要先到pom.xml文件中配置mail.jar,activation.jar包 <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <dependency> <groupId

谈谈23种设计模式在Android源码及项目中的应用

本文首发于个人博客:Lam's Blog - 谈谈23种设计模式在Android源码及项目中的应用,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移至个人博客,如果个人博客无法访问可以留言告诉我,转载请声明个人博客出处,谢谢. 前言 本文将结合实际谈谈23种设计模式,每种设计模式涉及 * 定义:抽象化的定义与通俗的描述,尽量说明清楚其含义与应用场景 * 示例:如果项目中有使用过该模式,则会给出项目中的代码,否则会给出尽可能简单好理解的java

Web项目中手机注册短信验证码实现的全流程及代码

最近在做只能净化器的后台用户管理系统,需要使用手机号进行注册,找了许久才大致了解了手机验证码实现流程,今天在此和大家分享一下. 我们使用的是榛子云短信平台, 官网地址:http://smsow.zhenzikj.com 我是java开发者,后端使用了springMvc,前端用的是jsp + jquery 短信验证码实现流程 1.构造手机验证码,生成一个6位的随机数字串:2.使用接口向短信平台发送手机号和验证码,然后短信平台再把验证码发送到制定手机号上3.将手机号验证码.操作时间存入Session

项目中客户端,服务端验证,数据库联合唯一约束,事务管理。

项目中有个需求,发布一个活动,记录下参加该活动的id和参与人id,同时调用接口,往收藏夹中添加一条记录,往交易表中添加一条记录.最后根据返回的结果,给出不同的提示信息. 1.如果当前的在jsp页面上面做处理,判断是否参与过.参加过之后,参加按钮不可点.没有参加的情况,参加按钮可以点. 2.jsp客户端加上js处理,参加按钮点击完之后,按钮不可点. 3.在controller中,业务逻辑开始前,再次java判断是否参加过该活动. 4.在数据库中参与表(活动id,参与人id)加上联合唯一约束.根据异