0

我正在尝试使用来自此参考https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-devquickstarts-node的 passport-azurea-ad 进行统一应用程序身份验证的新模型-网络

集成是成功的,但是每次我登录时,我都会被重定向到一个页面,我可以在其中从现有的 Microsoft 帐户中进行选择或添加一个新帐户。如果用户已经登录到他的 azure 或 microsoft 帐户,为什么会话或帐户没有自动获取?我的要求是如果他登录到他的 azure 帐户或 micrososft 帐户,应该自动获取用户会话(不是第一次他同意)在此处输入图像描述

如果他已经登录,则需要避开此页面

4

1 回答 1

3

原因是技术限制。让我看看我是否可以简要解释一下:

  • 当请求到达 v2 端点 (login.microsoftonline.com) 时,v2 端点无法检测到现有消费者帐户会话 (login.live.com) 的存在。
  • 因此,v2 端点必须查询(通过 login.microsoftonline.com 页面上托管的 iframe)到 login.live.com 以检测消费者会话是否存在。
  • 如果存在消费者会话,则 v2 端点应向用户显示“帐户选择”屏幕,就像您在问题中描述的那样。
  • 如果消费者会话不存在,并且用户只有一个业务会话,它可以使用该业务帐户自动登录用户。然而,此时用户可能已经等待了大约一秒钟,以便对 login.live.com 的查询完成。如果页面在一秒钟后自动完成,这可能是一种奇怪的用户体验。

v2 端点肯定会显示一个加载微调器或其他东西来阻止用户直到可以做出决定,但决定让用户单击一个图块是一个可接受的替代方案。

于 2016-11-28T22:02:29.387 回答