在我们当前的SPA实现中,我们使用AzureAD对adal.js进行身份验证,在成功的身份验证之后,访问我们的web以获得授权数据。有几种情况下,get授权数据调用可能失败。在本例中,我们希望清除adal.js创建的状态/缓存。我尝试了一些事情,但我没有能够创造一个干净的板子。以下是我尝试过的一些代码。
localStorage.clear();
var authContext = AuthenticationContext.prototype._singletonInstance;
authContext.clearCache();
authContext._user = null; 我不想使用内置的注销功能。调用注销将用户重定向到Azure登录页。用户体验是非常复杂的,所以尽量避免它。
发布于 2015-07-29 18:50:50
如果您想清除adal创建的所有缓存条目,clearCache()是应该使用的方法,如果只想清除特定资源条目的缓存,则使用clearCacheForResource。
但还有一点要注意的是,这两种方法只清除缓存/存储,但它不会清除任何会话/cookie持有的蔚蓝广告,如果您想清除,那么内置的注销应该是使用的。
您可能会尝试实现静默注销(可能使用iframe,这将阻止ux显示),然后调用clearCache清除本地存储/会话存储。
发布于 2015-11-05 13:21:31
可以将postLogoutRedirectUri设置为应用程序设置:
adalProvider.init(
{
instance: 'https://login.microsoftonline.com/',
tenant: 'www.contoso.com',
clientId: '0101001010101',
extraQueryParameter: 'nux=1',
cacheLocation: 'localStorage', // enable this for IE, as sessionStorage does not work for localhost.
endpoints: endpoints,
postLogoutRedirectUri: 'https://www.yourapp.com'
},
$httpProvider
);https://stackoverflow.com/questions/31708493
复制相似问题