jwt 刷新过期了的问题

这边有个问题,我做了试验,jwt 设置的14天刷新时间不会随着refresh()的执行而增加,它是固定的,所以出现个问题,在我应用的执行过程中,如:请求新闻列表数据的过程中,14天时间到期了,然后这时候跳转到请求登录页,用户是否会非常尴尬?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 8

过期的时候去refresh,换上新的token就行了, 之前写过一篇文章 http://39.108.139.38/articles/77 ,仅供参考 :joy:

5年前 评论

@duc 通常设置 半小时访问过期,14天刷新过期;然后我做了类似于 记住密码的动作,即14天内,它再次打开web,依旧能登录;但在14天的节点上,在用户依旧在web上访问时,14天时间到了然后过期了,这个时候不能实现过期刷新动作,一定需要用户做登录,所以,这个时候想问下,怎么处理合理些?

5年前 评论

@qujsh token刷新时间肯定比过期时间长,如果像你所说的第十四天用户登录,那么假定你过期时间是7天,第十四天的去登录的时候,refresh的请求肯定在用户进入系统那时候就发送,并且把token刷新了,应该不会出现你所说的正在访问然后突然失效的情况,按常理来说,只要用户14天内有活动记录,那么一旦他记住密码,这个token一直都会去刷新。:joy:

5年前 评论

@duc :cry: 感觉可能是我没讲清楚,你可以认为 token的过期时间是半小时,刷新过期时间是14天,这是一定的,确定了的内容。然后14天的刷新时间是固定的,是不会随着你的请求登录而往后延长的。所以,当到14天的时候是否有可能,我在时间13.9天进入应用,然后行为一直持续到第14天,token过期了,刷新token也过期了,这时候逻辑是跳转登录页面。然后可能的结果是,用户在刷新一个用户列表,时间到了过期了,用户一脑懵的说,我怎么又要登录一次了?大概是这么个意思,想问的是 有没有感官好点的交换方式的?

5年前 评论
liyu001989

过期了,14天之前就是可以重新刷新,14天之后就是需要重新登录。

用户一打开你的 app 就可以检测这个时间,过期了赶紧刷新一次,不用等到用户操作之后。触发的条件可以有很多

5年前 评论

@qujsh 你是不是把用户登录后第一个token存本地了,然后用户过一天登录进行交互时每次都是拿第一次存本地的过期token换新token进行访问(每次新token都是一次性的,比如点击访问文章,拿过期token换取新token后访问,评论文章拿过期token换取另一个新token后评论),所以这个本地token到第14天失效的时候会出现你所说的要重新登录的情况?
实际操作中应该是拿过期token换取新token后把本地的过期token替换掉啊,这样这个新的token又有14天的过期时间了。
不知我的理解是否有误。

4年前 评论

@Noctis 当然有误, token 换新后, 旧的就进入黑名单了(无法一直刷新), 楼主的意思是 通过 refresh 后的 token 共享第一次登录拿到的 token 的 refresh_ttl 时间

4年前 评论
linxsl 4年前

@qujsh 你好,请问找到解决方案了吗?

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!