如何在MSAL SPA应用中清除已缓存的token?
清除缓存Token的解决方案
首先根据Token的存储位置选择对应清除方式即可:
- 存储在localStorage中:执行
localStorage.removeItem('你配置的Token存储键名'),调试阶段也可直接调用localStorage.clear()清空所有本地存储数据 - 存储在sessionStorage中:执行
sessionStorage.removeItem('你配置的Token存储键名'),全清则调用sessionStorage.clear() - 存储在可操作的普通Cookie中:通过设置过期时间实现删除,示例代码:
document.cookie = "你的Token存储键名=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"
注意path参数需要和存储Cookie时设置的path保持一致,否则会删除失败 - 存储在HttpOnly类型Cookie中:前端无权限主动删除,需要后端配合在重定向响应头中返回
Set-Cookie字段,将对应Token的过期时间设置为历史时间即可清除
针对你当前的业务场景,还可以做逻辑优化避免后续再出现同类问题:
现有逻辑提前缓存了Token才做权限校验,导致两者状态不同步。可以调整逻辑顺序:用户完成权限同意操作之后,再下发并缓存Token。如果暂时无法修改主流程,就在触发重定向到登录页的逻辑之前,先执行上述Token清除操作,再执行页面跳转即可。
内容的提问来源于stack exchange,提问作者rajat
相关产品推荐
相关产品推荐

