试图弄清楚。 MSAL.js 中的 ssoSilent()
和 acquireTokenSilent()
有什么区别?
两者似乎都获取一个内部包含 token 的 auth 对象。那么您可以调用 ssoSilent(...)
而无需提供帐户。但是您可以通过 instance.getAllAccounts()[1]
获取这些内容,然后调用 acquireTokenSilent(...)
,但这听起来不合理。
我在某个地方发现,您应该在登录时调用 ssoSilent(...)
,然后在调用 API 时调用 acquireTokenSilent(...)
,但是acquireTokenSilent(...)
本身似乎完成了所有工作。
有人可以澄清一下它们有何不同/何时使用哪个?
最佳答案
MSAL 提供静默登录或 SSO 两种方法。但有些情况下你需要使用交互式方法。例如,由于某些浏览器中存在第三方 Cookie 限制插件,尽管存在与 Azure AD 的事件用户 session ,ssoSilent
请求仍将失败。作为补救措施,您可以将 prompt
值作为 none
传递给交互式请求,例如 loginPopup
。然后,MSAL.js 将打开 Azure AD 的弹出窗口,Azure AD 将利用现有 session cookie 来接受提示值。在这种情况下,用户将看到一个简短的弹出窗口,但不会提示输入凭据。
关于typescript - Azure AD - MSAL.js - ssoSilent() 与 acquireTokenSilent(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75215247/