说在前面
博主最近会有很多项目跟大家一起分享,做完后会上传github上的,希望读友们能给博主提提意见哈哈
这个项目是第三方登录和安全方面的,关于后台与app和网站的登录连接操作的实战项目
实现短信验证码登录
开发短信验证码接口
校验短信验证码并登录
> 验证码处理流程:
先进入ValidateCodeController并且接收{type}–>进入ValidateCodeProcessorHolder(验证码处理器的持有者,要获取先来这里通过验证和查询)–>找到Spring的组件中对应的处理器,返回–>进入AbstractValidateCodeProcessor(顾名思义,抽象的验证码处理器类,这里面主要是各种验证码处理器类的共同方法)–>getValidateCodeType根据请求的url获取校验码的类型–>ValidateCodeType这是个枚举类,找到对应的类型–>获取validateCodeGenerator(在map中找)–>进入生成校验码的逻辑中
> 验证码过滤器的运行机制
在属性配置完之后–>向map中存放所有需要校验验证码的url(调用securityProperties中getCode中读取不同类型的验证码类型)–>往下执行–>等用户输入后再进入过滤器进行doFilterInternal内部校验
重构代码
> 重构的目的就是让代码以后都可以直接重用
1.将配置统一起来管理,在SecurityProperties类中读取BrowserProperties和ValidateCodeProperties,以后与安全认证相关的配置类都可以在SecurityProperties中配上
2.定义一个SecurityConstants安全认证模块的常量接口类,里面包含所有要用到的常量,方便以后维护和扩展
3.创建ValidateCodeProcessor,定义一些通用的方法和属性,让AbstractValidateCodeProcessor去实现接口自己扩展通用的方法,然后再让具体实现类去继承扩展自己的方法