个人前后端分离项目中 token 是怎么处理的

2021 年 8 月 16 日
 zxCoder

登陆后后端发一个 token,前端存在 localstorage 里,然后前端的登录状态显示是根据这个 localstorage 里的 token 吗,那这样怎么判断 token 过期了呢,前端也要再存个 token 的有效时间吗?

4156 次点击
所在节点    问与答
29 条回复
ajaxfunction
2021 年 8 月 16 日
最靠谱的就是 header 里带 token 啊,每次请求要校验 token 状态,
还有一种 jwt,我一直觉得不好用。
XTTX
2021 年 8 月 16 日
@ajaxfunction header 带 token, token 可以存在内存里,避开存在 localstorage,就像 csrf token. 登录如果需要 persist, 还是要用到 cookie.
GG668v26Fd55CP5W
2021 年 8 月 17 日
本地 local storage 也存一个过期时间,请求前先判断是否到期,到期直接转到登录流程,可以少一次 API 请求,同时清除 local storage 的相关数据,比如 token 。

后端必然要做校验,jwt 本身就要检验过期时间,以防有人恶意提交或者意外提交过期的 token,单返回 401 可能不够,需要补充错误信息,有可能是请求相应资源的权限不够,比如要 VIP 才能取得访问,也可能是用户身份失效。两者处理的逻辑不一样。
zzl22100048
2021 年 8 月 17 日
直接用 oidc 防止不必要的烦恼
CQCQCQ
2021 年 8 月 17 日
前端:“和服务器交互时再判断是合理的”

后端:WTF ?
kekxv
2021 年 8 月 17 日
cookie 有什么问题吗?
ChangJingli
2021 年 8 月 17 日
前端把 token 存在 cookie 里,并设置与后端一致的 expire 时间即可。
XTTX
2021 年 8 月 17 日
@xliao “前端:“和服务器交互时再判断是合理的”” 这话有啥问题?
Martin9
2021 年 8 月 17 日
4L 说的对

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

https://v2ex.xtra.eu.org/t/796053

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

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

© 2021 V2EX