用了token机制是不是每次刷新页面都要请求一下用户当前的登录状态?

我一旦登录后主页就显示登录好的头像在右上角,如果使用token机制,是不是每次刷新主页或其他存在头像的页面,都要请求一下登录状态是否过期了呢,要吗?如果过期不是立刻进入登录页面,而是右上角的头像设置为默认没有头像的样式,暗世需要登录,如果没过期就继续显示头像在那。如果是这种方法,那岂不是刷新十次就要请求十次了?

阅读 7.4k
4 个回答

个人认为应该看项目的需求,
是否允许长期存储的 token,或者 多点登陆之类的

如果需求有 是否过期 这个概念的时候,你只能去请求
如果需求只有 是否登陆 这个概念,那么久不用考虑刷新,只需要考虑回收 token 就可以了
当然,前提是不考虑多点登陆的情况

localStorage.setItem()localStoarage.getItem()把token存储到本地,这样就可以下次刷新可以访问本地存储是否有token值,不需要再发起Ajax请求

Token可以为一组信息的编码
例:
{'username': 123, 'password': 123, 'expiration': '2019-08-12 12:00:00'}
对于是否到期,前端解码判断相关时间字段即可。

JWT

设置响应拦截器,token按有效传,如果失效后台返回错误码,然后进行重置跳转登录等操作,个人信息可以存在sessionStorage或localStorage,

推荐问题