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, ...);
...
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, ...);
...