2017-05-22 26 views
1

UserAgentApplication.localCache = "localStorage"が機能していません。MSAL UserAgentApplication:ローカルストレージが動作しない

再現手順:

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

client.cacheLocation = "localStorage"; 

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

結果: MSALトークンはセッションストレージに格納されています。 (Chromeデベロッパーツール)

予想: トークンはローカルストレージに保存する必要があります。

私たちはUserAgentApplicationを作成する前にMsal.Storage singeltonをインスタンス化し、ローカルストレージを使用することを考え出した回避策としてhttps://secure.aadcdn.microsoftonline-p.com/lib/0.1.1/js/msal.min.js

答えて

1

経由msal 0.1.1 JavaScriptライブラリを使用しています。これは、UserAgenApplicationをインスタンス化するときに、Msal.Storageがセッションストレージで構成されて固定されているためです。したがって、Msal.Storageが既に作成されているため、それ以降のclient.cacheLocation = "localStorage"の呼び出しは機能しません。

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

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

解決策はローカルストレージを使用するように思われます。 私が直面している問題は、Msal.UserAgentApplicationを作成するときに、ローカルストレージからのデータを使用してユーザーオブジェクトを生成しないということです。あなたはこの問題を解決できましたか?ローカルストレージデータを使用してMsal.UserAgentApplicationを作成する方法のコードスニペットがありますか? ページを更新するときに再度サインインする必要があるユーザーエクスペリエンスが非常に悪い。 ありがとう! – Molibar

+0

は私のために働いていません – Andreas

+1

0.1.2がこのようなctor paramを通過して以来、 'var client = new Msal.UserAgentApplication(config.aadClientId、config.aadAuthority、()=> {/ *コールバック* /}、{cacheLocation: localStorage '}); 'はその仕事をするべきです。ソース:[microsoft-authentication-library-for-js#58](https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/58#issuecomment-333730346) – gaa

関連する問題