- 使用uni-starter搭建项目,其集成了uni-id
- 待token快失效时,停止操作,避免token被刷新
- token过期,查看localstorage,发现用户信息还存在;查看“我的”页面,用户信息仍然被渲染
- 发布:2022-10-21 14:40
- 更新:2023-07-14 12:19
- 阅读:1125
产品分类: uniCloud/App
操作步骤:
预期结果:
- token过期,清除localstorage的用户信息
- token过期,关于用户信息的页面渲染全部刷新
- token过期,清除localstorage的用户信息
- token过期,关于用户信息的页面渲染全部刷新
实际结果:
- token过期,localstorage中的用户信息未清除
- token过期,关于用户信息的页面仍被渲染
- token过期,localstorage中的用户信息未清除
- token过期,关于用户信息的页面仍被渲染
bug描述:
token失效,请求接口返回错误“TOKEN_INVALID_TOKEN_EXPIRED 未能获取当前用户信息:登陆状态失效,token已过期”
查看localstorage,发现用户信息还存在,“我的”页面依然显示当前用户昵称
呆狗的一生 - 呆狗的一生
我觉得这不是bug,浏览器目前对于Cookie
和 Local Storage
并不能实现像redis那样的自动删除功能,localstorage中的用户信息存在,并不能作为是否登录的判断条件,前端对于登录的判断,可以简单的采用uni_id_token
是否存在,已及uni_id_token_expired
是否过期来判断,基于Local Storage是不安全和可修改的特点,后端应该调用checkToken()
,用以检查token的合法性。
xiaoxiao昱 (作者)
这是uni-starter和uni-id里面的,我自己也能改,但最好还是官方处理一下,这样其他开发者直接拿来就可以直接用
2022-10-21 17:03
DCloud_uniCloud_JSON
回复 xiaoxiao昱: token不计划清理,haslogin的判断条件会升级一下。
2022-10-24 12:06
呆狗的一生
回复 DCloud_uniCloud_JSON: hasLogin判断条件有点简单了
2022-10-24 16:32
xiaoxiao昱 (作者)
回复 DCloud_uniCloud_JSON: 既然token已失效过期,留着的意义在哪?
2022-10-25 09:06
DCloud_uniCloud_JSON
回复 xiaoxiao昱: 新登录后会覆盖,不影响业务且数据量不大没有清理的必要。如果你非要清理也可以清理关系不大
2022-10-25 14:26
5***@qq.com
回复 DCloud_uniCloud_JSON: 现在都没有升级吧。hasLogin是true 。直接点击退出还是token过期
2023-03-05 19:19
DCloud_uniCloud_JSON
回复 5***@qq.com: hasLogin = true表示登录过,和token是否过期无关,检查token是否过期可以调用uniCloud.getCurrentUserInfo().tokenExpired 判断
2023-03-06 11:11