请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,您好有个需求,老师方便提供下指导和代码怎么写的中间件吗?

需求: 学完了session 公司里面要用jwt实现登录,但是有个优化的问题,就是如何让令牌时间自动更新时间,持续化更新。
例如: expiredin:'1m' token的有效期是设置一分钟,然后再这个1分钟中期间,用户正在操作表单,当点击提交表单的时候,正好已经过了一分钟,token失效了,这样的用户体验肯定不行的, 如何做到 用户假如登录的token有效时间12:00-12:01 如果用户再12:00:01--12:00:59之间 又调了后台接口了,我后台把token有效期延期1分钟 就是,变成 12:02 token 失效 以此类推 

麻烦老师有开发过这种案例吗 希望老师附带下资料或者源码案例 谢谢老师了

正在回答 回答被采纳积分+3

5回答

提问者 再坚持坚持一下 2021-04-08 09:26:48

就是我写个后端逻辑,前端再一个小时之间,再次请求了带有token的接口,我可以后端egg 怎么把有效期自动往后顺延一个小时呢,根据每次请求接口来自动更新1个小时,如果是在一个小时,客户端确实没操作了,那就返回token失效了 这样的实现方式,麻烦老师了

0 回复 有任何疑惑可以回复我~
  • 双越 #1
    token 是没法更新的,只能重新生成一个 token ,新 token 的有效期延长一个小时,这样思路。
    如果一小时之后,客户端没操作,那就只能 token 失效了。
    或者,客户端可以有一个自动刷新的机制,没 1min 检测 token 时间,如果过期了就自动跳转到登录页,这样用户体验更好一些。
    回复 有任何疑惑可以回复我~ 2021-04-08 18:56:57
提问者 再坚持坚持一下 2021-04-08 08:59:45

就是我写个后端逻辑,前端再一个小时之间,再次请求了带有token的接口,我可以后端egg 怎么把有效期自动往后顺延一个小时呢,根据每次请求接口来自动更新1个小时,如果是在一个小时,客户端确实没操作了,那就返回token失效了 这样的实现方式,麻烦老师了

0 回复 有任何疑惑可以回复我~
提问者 再坚持坚持一下 2021-04-08 08:56:50

就是我写个后端逻辑,前端再一个小时之间,再次请求了带有token的接口,我可以后端egg 怎么把有效期自动往后顺延一个小时呢,根据每次请求接口来自动更新1个小时,如果是在一个小时,客户端确实没操作了,那就返回token失效了 这样的实现方式,麻烦老师了

0 回复 有任何疑惑可以回复我~
提问者 再坚持坚持一下 2021-04-08 08:51:44

老师自动持续更新时间,我想让后端实现自动更新时间的逻辑 可以不用前端操作吗?

0 回复 有任何疑惑可以回复我~
  • 双越 #1
    jwt 的 token 是存储在客户端的,后端只能生成新的 token ,没法去更新 token 。如果你想让后端做的更多,那就不应该用 jwt ,用 session就好了。
    回复 有任何疑惑可以回复我~ 2021-04-08 18:57:35
双越 2021-04-08 08:42:04

我们《前端架构师课》https://class.imooc.com/sale/fearchitect  中的项目就是用 jwt 实现的登录,源码都在 https://github.com/imooc-lego 开源了。

token 设置 1min ,时间太短了,都不够用户操作的。你把 token 有效期设置长一点,例如 1h ,这样就会好很多。(当然你也可以反过来思考,例如 token 有效期设置 1s ,或者 100ms,更短,会怎样?会不会就乱了?)

token 设置 1h 或者 5h ,前端每次请求时,都判断一下当前 token 的剩余时间,如果时间短就先去申请一个新的 token 。这样几乎能搞定 99% 的场景。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信