我写了一个refreshToken功能请老师看看有没有什么问题

我写了一个refreshToken功能请老师看看有没有什么问题


全局守卫部分的设置

axios响应拦截器的设置

axios请求拦截器设置

refreshController

用户登录后,登录接口会把token 和 refreshToken返回给用户

把tokenExp和refreshExp改成几秒,测试后没什么问题

这段时间写的代码一直都带着这个功能,感觉没什么大问题


学习的一些体会:

项目实战的时候,看一下老师的实现过程。然后找几个网站,把别的网站上类似的功能自己实现一下放在项目里,,,过程很痛苦,但是比直接照着老师的写收获大一些。然后能发现感觉会了其实不会的地方还是很多的?​。

项目做到了用户编辑帖子那里,但是这几天主要在刷面经,看书,巩固一下基础知识,越来越觉得基础重要了。对于半路出家的人,我觉得逻辑思维确实是个问题,,比如不用递归用循环的方式实现一个对象深拷贝这种我就看了半天才大概捋顺逻辑。

前端的各种生态要学,但是计算机基础,算法,设计模式之类的感觉也要有一定的积累才能写出好代码?

另外多看书和技术类帖子,一开始看高程和你不知道的js感觉好多东西没啥用,现在觉得很有用了,,,,,

想当程序猿也不容易啊。。。。。



我也封装了一个倒计时函数

http://img1.sycdn.imooc.com//climg/5fc7b04d0acd070607260590.jpg# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

非常棒,可以看看我写的RefreshToken: https://git.imooc.com/class-70/toimc-front/commit/8476b39c343d4381a3ee52b3012f22096bde4a89


我总感觉你在前端去判断exp是不科学的,一般靠后台来判断,因为用户的时间可能不准确。


半路出家没有什么的,好多半路出家,非计算机专业的进了大厂,当了Leader。

  • _zion_ 提问者 #1

    老师,我看你的代码在路由守卫那里,如果token过期了,直接localStorage.clear()。即使refreshToken没有过期,也会直接被清空,然后发送refresh请求就会失败。


    我觉得在全局路由守卫那里,如果token不存在或过期,也要发送一次refresh请求,如果请求失败,再localStorage.clear()。

    前端errorHandle和全局路由守卫都要发送refresh请求。


    后端的getPayload函数用了jwt.verify()这个方法,如果refreshToken过期了,会报错,所以我不需要在前端判断refreshToken会不会过期,后端获取_id时就会自动判断了。


    不知道我理解的对不对?




    2020-12-05 14:40:25
  • Brian 回复 提问者 _zion_ #2

    我觉得在全局路由守卫那里,如果token不存在或过期,也要发送一次refresh请求,如果请求失败,再localStorage.clear()。

    前端errorHandle和全局路由守卫都要发送refresh请求。

    ——你的理解是对的,可以给课程git提交你的PR,我来合并~~?

    2020-12-09 10:41:47
  • Brian 回复 提问者 _zion_ #3

    你的逻辑,可以防止一种情况,就是用户进入了某个路由后,token虽然过期,但是refreshToken未过期的这种情况~

    2020-12-09 10:43:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师