ADAL(AAD)cookie过期或删除。如何创建cookie?

时间:2017-12-11 11:39:53

标签: angular cookies active-directory adal

我正在使用ADAL框架对单页面应用程序中的用户进行身份验证(Angular 1.4.8)。有时令牌不会为我配置的端点生成,如下所示(配置对象具有所有必需值)。

 adalAuthenticationServiceProvider.init(
            {
                instance: config.Instance,
                tenant: config.Tenant,
                clientId: config.ClientId,
                extraQueryParameter: 'nux=1',
                endpoints: endpoints,
                cacheLocation: 'localStorage',
                frameRedirectUri: window.location.protocol + "//" + location.host + "/IFrame.html"
            }, $httpProvider);

当我通过$http请求任何api呼叫时,api呼叫未启动,因为未向相应资源生成令牌。在我的localStorage中,我收到以下错误:

  

错误:AADSTS50058:已发送静默登录请求但未登录任何用户。用于表示用户会话的Cookie未在请求中发送到Azure AD。如果用户使用的是Internet Explorer或Edge,并且发送静默登录请求的Web应用程序位于与Azure AD端点(login.microsoftonline.com)不同的IE安全区域中,则会发生这种情况。

我认为每当ADAL尝试获取资源的令牌时,由于cookie被删除/过期而失败。因此,不生成令牌。

我尝试过一种方法,比如每当我收到此错误时,我会重定向到登录页面(例如:authContext.login()),但这会导致无限循环的身份验证。

我在边缘,铬,野生动物园,移动浏览中也遇到了错误。 任何人都可以告诉我如何解决这个问题吗?

0 个答案:

没有答案