记录一次用户登录逻辑+验证码逻辑

项目完工,总结一下项目,之前自己没有从头到尾的写过完整的登陆逻辑。现在总结一下。

用户登陆和验证码逻辑。这个项目是,验证码一分钟内不能再次请求,有效期是5分钟,每天同一个手机号最多请求5次。

验证码的逻辑,验证码逻辑分为。用户点击获得验证码后,将验证码,手机号,当前时间放入专门存放验证码的表中。

一:判断验证码一分钟内是否再次请求 (PS:请求路径user/verfity):

1.获取系统当前时间timestamp。

2.以用户手机号为根据查询存放验证码的表,来查询最近一次请求验证码的时间

3.用当前系统时间的timestamp减去最近一次请求时间如果小于60秒的timestamp(60 *1000)就是60秒内再次请求。

二:验证码有效期为5分钟(PS:请求路径user/login)

其实和验证60秒逻辑相似,参考上面的一,区别是当前号码的最后一次请求时间+5分钟(5 *60 *1000)的timestamp如果小于当前系统时间,即为验证码超过5分钟,失效。

三:一天之内最多请求5次(PS:请求路径user/verfity)

以当前用户时间和用户手机号为依据,模糊查询存放验证码的表。先获得系统当前时间,然后将时间转为"yyyy-MM-dd"格式再和用户手机号一起作为查询条件查询存放验证码的表,如果记录大于5条表示超过当天登录次数。否则生成随机验证码,调用发送短信的API,将用户手机号,验证码再生成一个当前时间放入用来存放验证码的表中。

二:用户登陆逻辑

验证码逻辑完成后,用户登录就是单纯验证账号密码了。多加了用户手机号和密码和验证码都匹配后登陆成功,给用户生成一个token放入用户表中。

你可能感兴趣的:(记录一次用户登录逻辑+验证码逻辑)