如果说现有的登录,可不可以呢?
也是可以的,只不过会有问题:
-
你在PC端,也就是浏览器上登录了,如果你在手机上登录,那么PC端的就会下线;
-
假设使用同一个token,修改代码可以实现,但无法同时更新各端的token当token过期的时候。比如这次请i娶是从手机上发起的,token过期了,就会生成新的token和token_key,这时手机是可以更新的,但是浏览器没法更新。
-
退出登录也得改,如果使用同一个token,退出的时候,就是干掉自己端的token_key。
所以我们要使用各端独立的token
比如微信:你可在网页版/电脑/pad上登录(这几个是一致的,也就一个登录了,其他登录的就会下线),手机上app的就是独立的。微信是有两个token的。
如何去实现各端的token,使用一个接口。
1、知道来源:是从PC发起的登录,还是移动端发起的登录,from字段。从请求头也可以判断,设备比较多的话比较麻烦,所以还单独加个字段。不传的就网页端,传的话就是其他的,比如说移动端。
2、登录、流程差不多,token里会添加来源字段。每次访问就知道是从哪里发起的请求了。比如说发起评论,就可以知道这个评论是从移动端还是PC端来的。
保存token_key到refreshToken里,需要多一个字段。
3、退出登录和过期:之前是做法是干掉所有的refreshToken记录,重新创建新的。不删除,只修改,如果没有就添加。
- 修改点:
- 测试点:
- 测试登录,测试PC端登录和移动端登录 (pass)
- 测试权限的使用是否正常(用户解析)(pass)
- 退出登录,测试PC端退出登录,移动端退出登录
具体的修改请查看视频吧
课程地址:JavaWeb实现个人博客系统