Chrome 117版本下msal-browser无法保存认证令牌至本地会话求助
解决方案
针对Chrome 117版本下msal-browser无法在Teams React应用中保存认证令牌的问题,可按以下步骤排查修复:
升级msal-browser版本
你当前使用的2.38.1版本发布时间较早,未适配Chrome 117引入的隐私沙箱及第三方存储限制。建议升级至最新稳定版(如>=2.48.0),新版本针对iframe内嵌场景(Teams应用运行环境)做了专门优化,能更好兼容Chrome的新规则。调整缓存配置
Chrome 117对第三方上下文(如Teams iframe)的localStorage限制收紧,可尝试两种配置修改:- 切换缓存存储位置:将
cacheLocation改为sessionStorage,sessionStorage在第三方上下文的权限限制更宽松,能避免localStorage的存储问题:{ auth: { clientId: config.clientId, authority: Config.authority, redirectUri: config.redirectUri }, cache: { cacheLocation: "sessionStorage", storeAuthStateInCookie: true } } - 优化localStorage相关Cookie设置:若需保留localStorage,需开启
secureCookies并设置sameSite为"None"(仅适用于HTTPS环境,Teams应用默认满足),确保跨站点Cookie能被正常存储:{ auth: { clientId: config.clientId, authority: Config.authority, redirectUri: config.redirectUri }, cache: { cacheLocation: "localStorage", storeAuthStateInCookie: true, secureCookies: true, sameSite: "None" } }
- 切换缓存存储位置:将
验证重定向URI配置
确认Azure AD应用注册中已正确配置Teams应用对应的重定向URI,包括内嵌场景的回调地址(如应用域名下的/auth-callback或Teams官方回调地址),避免因回调地址不匹配导致令牌存储失败。
内容的提问来源于stack exchange,提问作者fonts
相关产品推荐
相关产品推荐

