在线视频项目学习笔记(三)—前台登录相关

一、短信验证码接口分析

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,将其返回给前端,注意这里和后台登录一样将登录信息存储到redis中7天(这里为啥是7天,不可以是30分钟)

 

 三、已登录接口(注意这里有个自定义注解)

 1.本质上就是根据token来获取用户的具体信息,这里和后台的代码也一样,就是在redis中已经存储到了,这里直接获取就可以了。

2.这一节中定义了一个注解,必须传入token的注解,这里把这个注解学习下回来。这块再看看视频。

 

 

 四、注销接口

和后台的注销是一样的,就是在redis中直接删除token信息即可。

 

 五、修改用户信息接口

 这里突然想到一个问题,redis存储的sessionID是不是每次有请求的时候搜应该将时间更新为半个小时(仅仅针对于后台来说)???

这里第1条也可以作为过程中遇到的问题来说,就会修改的时候并没有显示全部的字段。

1.修改信息需要注意一个问题,就是每次并不是把所有的字段都修改掉的,可以只传修改的字段,这样就需要获取原来的字段然后修改不为空的值;也可以把所有值都传递过来,但是这样创建时间这样的字段也会被修改,所以推荐使用第一种方式来做修改,我们首先通过redis来获取原始用户信息,然后只更新修改过的信息。

2.(可忽略)这里修改手机号需要验证之前的验证码。

3.别忘了更新redis中的存储的用户信息(token对应的value就是用户信息)。

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2023-01-01 22:49  一直学习的程序小白  阅读(55)  评论(0编辑  收藏  举报