MSAL UserAgentApplication:本地存储不工作

MSAL UserAgentApplication: Local storage not working

UserAgentApplication.localCache = "localStorage" 不工作。

重现步骤:

var client = new Msal.UserAgentApplication(config.aadClientId, config.aadAuthority...);

client.cacheLocation = "localStorage"; 

client.loginPopup().then( ... );

结果: MSAL 令牌存储在会话存储中。 (Chrome 开发者工具)

预期: 令牌应该在本地存储中。

我正在通过 https://secure.aadcdn.microsoftonline-p.com/lib/0.1.1/js/msal.min.js

使用 msal 0.1.1 javascript 库

作为解决方法,我们发现在创建 UserAgentApplication 之前实例化 Msal.Storage 单例,将使用本地存储。这是因为在实例化 UserAgenApplication 时,Msal.Storage 已固定配置会话存储。因此 client.cacheLocation = "localStorage" 的后续调用不起作用,因为 Msal.Storage 已经创建。

 ...
 new Msal.Storage("localStorage");

 var client = new Msal.UserAgentApplication(config.aadClientId, config.aadAuthority, ...);
 ...