公司需要做一个手机登录验证码嘚设计
手机每1min种可以请求短信API发送一次 验证码4位数字 数字少主要是产品考虑用户体验的问题
对输入手机号的用户来源进行判断 防止恶意用戶暴力输入
前端 发送验证码前可以让用户手动输入图片验证框 防止恶意输入
调用云服务对用户登陆的来源ip地址 时间 手机号 User-Agent等数据进行分析判断 对恶意用户必须输入图片验证框才能发送验证码 优化用户体验
防止验证码被暴力破解进而登录系统
前端 尝试一定次数后 需要输入图形驗证码才能进行登录 并且图形验证码也设置过期时间 过期需要重新输入图形验证码
后端 redis存储手机号码和次数的尝试次数的key/value对 尝试一定次数後 该手机号不能再进行验证
由于网络不畅通用户可能在验证码有效期间多次请求服务器 用户收到的每一个的验证码在有效期内都应该能夠登录系统
对短消息发送必须严格权限控制
短信验证码不要直接加入在日志系统中
一旦用户登录 后端redis中的该手机号码的value全部失效