登录重定向时遇到问题

时间:2019-05-02 12:34:43

标签: angular azure user-interface authentication msal

我有一个使用@ azure / msal-angular软件包进行身份验证的角度应用程序。我在从其他站点到我的站点创建sso时遇到问题。对于考试: 如果我登录到Microsoft学习站点,然后尝试登录到我的站点,它将显示我可以用来继续的帐户列表。 有什么办法可以使它直接继续使用当前会话中的登录帐户。

我尝试手动更新url并将提示变量设置为none,然后它起作用了。但是我面临着通过代码自动设置的问题。我试图在其他查询参数中传递提示,但提示重复输入。

 constructor(public router: Router,private
    appservice:appService,private msl:MsalService) {}   
    canActivate():boolean {
        //debugger;
          if(!this.appservice.isAuthenticated()){
          this.msl.loginRedirect();
          return true;
        }
        return true;   }

1 个答案:

答案 0 :(得分:0)

acquireTokenSilent使用带有prompt=none的隐藏iframe,这意味着不会提示用户输入凭据。此API依靠在浏览器和AAD之间建立的会话cookie来获取新的access_token。如果您的会话已过期,则此API调用将失败,并且您将不得不通过调用acquireTokenPopupacquireTokenRedirect进行交互式令牌更新,在该处将要求您再次输入凭据。

您的浏览器可能会删除Cookie (x-ms-cpim-transdoes)

对于Mac用户,我们也在Safari浏览器中也看到了这一点,问题与Safari Preferences -> Privacy -> Prevent cross-site tracking

的设置有关

您可以在下面的线程中查找类似的问题。

https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/349