试图弄清楚。在MSAL.js中ssoSilent()
和acquireTokenSilent()
之间有什么区别?
这两个函数似乎都获取了一个内部有令牌的auth对象。你可以调用ssoSilent(...)
而不提供帐户。但是你可以通过instance.getAllAccounts()[1]
获取这些令牌,然后调用acquireTokenSilent(...)
,但这听起来并不合理。
我在某个地方发现,你应该在登录时调用ssoSilent(...)
,然后在调用API时调用acquireTokenSilent(...)
,但是acquireTokenSilent(...)
本身似乎完成了所有的工作。
有人能澄清一下,它们有什么不同/什么时候使用哪个吗?
1条答案
按热度按时间euoag5mw1#
MSAL同时提供静默登录或SSO方法。但在某些情况下,你需要使用交互式方法。例如,由于某些浏览器中存在第三方Cookie限制插件,因此即使用户与Azure AD进行活动会话,
ssoSilent
请求也会“失败”。作为补救措施,您可以将prompt
值作为none
传递给交互式请求(如loginPopup
)。然后,MSAL.js将向Azure AD打开一个弹出窗口,Azure AD将通过利用现有会话Cookie来荣誉提示值。在这种情况下,用户将看到一个简短的弹出窗口,但不会被提示输入凭证。