angular - 登录重定向时遇到问题

标签 angular azure user-interface authentication azure-ad-msal

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

我尝试手动更新 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;   }

最佳答案

acquireTokenSilent使用隐藏的 iframe prompt=none这意味着不会提示用户输入凭据。该API依赖于浏览器和AAD之间建立的 session cookie来获取新的access_token。如果您的 session 已过期,此 API 调用将失败,您将必须通过调用 acquireTokenPopup 进行交互式 token 更新。或acquireTokenRedirect系统将要求您再次输入您的凭据。

您的浏览器可能会删除 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

关于angular - 登录重定向时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55952585/

相关文章:

c# - ASP.NET:功能键快捷方式?

java - 无法让 JLabel 从头开始​​切换到 GUI

.net - 无法使用 azure Eventhub 在架构注册表中创建架构

c# - 使用 DataLakeStore FileSystem ManagementClient 上传到 Azure Data Lake 的 30Mb 限制

javascript - 单击后在 Logo 下方保留导航下划线

angular - Typescript .d.ts 编译错误

azure - 入站/出站流量记录 Azure VPN 网关

java - 在运行时加载的 Wicket GUI 元素(OSGi?)

angular - NPM 安装 Angular cli 卡住了

angular - 在 Angular2 中将 jquery-steps 与 FormGroup 结合使用