[日常] 项目中业务绑定手机验证手机号的实现
在进行设置自动转发,增删来信规则,修改密码等操作时,增加必须绑定手机并且验证手机号的安全认证操作.在这个过程中使用控制反转的设计模式封装一个单独的类可以灵活的复用代码和调整逻辑
首先定义一个SecureTel的class类,这个类里面提供所有业务方法.在生成SecureTel对象的时候,需要使用框架内提供的一个生成对象的方法来操作,不能直接去new这个类,这个方法就是Sina_Application::resource('securetel'),在这个生成器中,会去调用SecureTel类中的createResource方法,并且会把配置文件中对应该类的参数传递进去.
SecureTel类就可以在自身的createResource方法中进行new自己这个对象,并且可以把配置文件的参数设置到自己的属性里,在其他的方法中可以根据属性进行业务判断
通过上面的处理,可以灵活的使用这个类在各个接口的控制器代码中,达到复用代码的目的.并且可以直接在配置文件中对这个类里面的属性进行控制,方便在进行业务调整时不去修改类内部的逻辑
上面是在代码层面的设计,下面是在业务的层面介绍一下
1.请求过来后,因为在这个逻辑中是不会有高并发的情况,直接查询数据库绑定手机表,判定是否已经绑定手机.如果没有绑定手机直接返回对应的错误码
2.绑定了手机情况下,要去memcache查询是否已经验证过了,key就是"c:xxxx@xxxx.com",这个key的过期时间是一天,如果有值,说明验证过了,没值就返回另一个错误码
3.在配置文件中,可以配置是否开启这个手机验证功能,防止在短信接口不能用时,影响用户操作,可以直接关闭所有业务的验证功能.这个配置对应
SecureTel类中的一个属性,其他方法对这个属性进行判定
4.在配置文件可以配置验证后的过期时间,这个在测试中可以进行灵活修改,让测试人员短期可以多次测试.
5.前端根据不同的错误码,进行不同的弹窗,绑定手机的弹窗和验证手机的弹窗
相关文章
- AR Engine光照估计能力,让虚拟物体在现实世界更具真实感
- AR空间音频能力,打造沉浸式声音体验
- 华为开发者大会HDC2022:HMS Core 持续创新,与开发者共创美好数智生活
- 华为开发者大会2022:HMS Core 3D建模服务再升级,万物皆可驱动
- 以开发之名 | bilibili会员购让IP在眼前动起来
- 以开发之名|线上家装新美学——梦想之家,由你来定
- 以开发之名 | 小红书:用年轻人的方式开发年轻人喜欢的应用
- 【FAQ】关于华为地图服务定位存在偏差的原因及解决办法
- AR人体姿态识别,实现无边界的人机交互
- 广告内容定向分级,保护未成年人身心健康
- 机器学习服务文本识别能力演进,大幅提升识别准确率
- 如何规范App广告的隐私获取,让用户拥有更多知情权?
- 驾考宝典携手HMS Core统一扫码服务,构建复杂场景中的流畅扫码体验
- 以开发之名|斗罗大陆:创造一个尽情探险的开放式游戏世界
- 区服分析丨更透彻的游戏营运数据解读,助力高效增长
- 分析服务用多维度、多场景的用户分层,带您深度玩转精细化游戏运营
- 请求投放个性化广告时,如何征得用户同意?
- 如何用AR Engine环境Mesh能力实现虚实遮挡
- 仅需30行代码,轻松集成HMS Core视频编辑服务屏幕录制能力
- 用AR Engine手部骨骼跟踪能力实现虚拟手表试戴