MSAL-Node令牌存储位置咨询(授权码流SSO场景)
MSAL-node 令牌存储位置说明
MSAL-node 是运行在 Node.js 后端的身份验证库,和前端的 MSAL.js 不同,它不会将令牌存储在浏览器的 Cookie、LocalStorage 或 SessionStorage 中,所有令牌的处理和存储都在服务器端完成,具体情况如下:
- 访问令牌、ID 令牌:默认存储在 MSAL-node 内置的内存
TokenCache对象中,属于进程内缓存,服务器重启后会丢失。 - 刷新令牌:同样默认存在内存缓存里,由于刷新令牌有效期较长,若要实现持久化或跨服务器实例的 SSO,你需要自行实现令牌缓存的序列化逻辑,将缓存数据存储到后端的持久化存储系统中,比如 Redis、数据库、文件系统,或者服务器端的 HttpOnly Cookie(仅服务器可读取)。
关于 SSO 实现的补充:
- 单服务器实例下,内存缓存即可维持用户的登录状态;多实例部署时,必须使用分布式缓存(如 Redis)共享令牌缓存,否则各实例的缓存相互独立,无法实现跨实例的 SSO。
- 前端只会收到后端设置的会话标识(如服务器端 Session 对应的 Cookie),但不会直接接触到任何令牌,这是出于安全考虑,防止敏感令牌暴露给前端环境。
内容的提问来源于stack exchange,提问作者F. K.
相关产品推荐
相关产品推荐

