一、短信验证码接口分析
1.首先第一点需要注意的就是短信验证码接口和登录接口不是一个接口,短信验证码接口是前端界面一点击发送验证码调用的,登录接口是前端在填上验证码以后一点击登录调用的。
2.短信验证码接口的逻辑过程如下图所示,需要注意的是这个过程中需要在redis加入“过期+phone”和“手机+phone”两个值,其中这个过期phone设置为60秒,60秒后这个过期phone就在redis中不存在了,然后我们下次就可以继续再发送验证码了,不到60秒不允许再发送验证码;手机phone指的是发送这一次验证码的有效时间(注意下次重新发送验证码以后上一次发送的就不能用了,因为同样的key会覆盖)。(补充:过期phone的value为什么都不重要,重点是判断这个key是否存在;手机phone对应的value是验证码)
这里我们把发送验证码的工具象类单拿出来说一下:
这里的代码完全可以说是完全参考的原版SDK示例,只是把accessKey的ID和Secret、签名sigename(就是你是谁,例如应学软件、青稞小店)、短信模板的编号改成自己的,实际调用的时候再把电话号和四位或者六位验证码作为参数传进去,然后就可以发送成功了。
二、登录接口分析
1.验证码发送成功后会在redis中存入一条数据,登录的时候比对数据即可。
2.这个数据就是上一个接口中存入的“手机+phone”,本次前端传入手机号和验证码,先判断手机号phone是否在redis中存在,不存在说明验证码过期了 (throw new RuntimeException("提示:验证码已经过期!"););如果存在则取出该key对应的value(也就是验证码),对比输入的是否正确。 3.然后判断如果是新用户,需要在数据库中插入一条新用户信息。 4.最后得到这次登录的sessionId,将其返回给前端。
三、已登录接口(注意这里有个自定义注解)
标签:接口,登录,过期,在线视频,验证码,笔记,发送,phone,前台 From: https://www.cnblogs.com/worthmove/p/17018590.html