前端, token 和 refreshToken 疑问

2020-07-13 11:47:48 +08:00
 yantianqi

token 和 refreshToken 存于 cookie 中

token 两小时有效,refreshToken 7 天有效

token 失效后 refreshToken 刷新 token

如果用户操作中 refreshToken 失效了,如何判断呢?区别于用户第一次进入的未登录?

2615 次点击
所在节点    程序员
9 条回复
rioshikelong121
2020-07-13 11:49:41 +08:00
后端判断吧。 后端可以区分 refresh token 的时间过期 和 cookie 中不包含 token 和 refresh token 的情况(未登录)。
baiyi
2020-07-13 11:54:58 +08:00
刷新 token 时发现 refreshToken 也失效,则清除前端登录状态,让用户重新登录
sunxiansong
2020-07-13 12:06:23 +08:00
判断逻辑和后端协商啊,给个确定的状态码给个错误码,反正能确定是 refreshToken 失效就行
Kyle18Tang
2020-07-13 12:13:19 +08:00
两个都失效后端就应该返回 401,你前端判断 HTTP 状态就可以了。
nvkou
2020-07-13 12:14:02 +08:00
你把各种 token 用点.分割开,把第二部分用 base64 解码。里面就有过期时间
liuzhaowei55
2020-07-13 12:14:14 +08:00
refresh_token 不应该每次传吧,应该第一次授权获得了 refresh_token 然后存储本地,当服务器返回 access_token 过期的时候,用 refresh_token 去刷新 access_token,我是这样理解的,一般情况下服务器也会顺带刷新 refresh_token 的过期时间。
kop1989
2020-07-13 12:15:30 +08:00
1 、token,refreshToken 是否失效应该交由后台判断,不应你来判断。
2 、在不刷新 token 的场景下,应该是无法发现 refreshToken 失效的,如果发现了,那这个 refreshToken 的业务意义就很让人不解。
3 、在 1 和 2 的前提下,也就是刷新 token 才发现 refreshtoken 失效,那么应该不存在你的问题。(因为未登录是不会通过 refreshToken 刷新 token 的)。
LeeSeoung
2020-07-13 12:58:28 +08:00
都让后端判断,前端只管解析后端返回的是否有效凭据
hantsy
2020-07-13 13:15:45 +08:00
用 OAuth2 标准的话,前端大把 OAuth2 封装( Angular,react ),更简单的就是用 Auth0,Okta 等。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/689516

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX