Mur*_*nth 5 reactjs azure-ad-b2c azure-ad-msal msal.js
这是我正在编写的代码。例如,我在同一应用程序上使用MSAL两个应用程序,请参阅下面的代码片段。SSOdomainhttps://some-domain.com/app1https://some-domain.com/app2
应用程序 1 似乎没问题,它允许用户正确登录。但是,在应用程序 2 上,当我重新加载页面时,它会抛出error
MSAL:InteractionRequiredAuthError:no_tokens_found:在缓存中找不到刷新令牌。请登录。
我已经使用过instance.acquireTokenRedirect,acquireTokenSilent但identityInstance.loginRedirect()似乎没有任何作用。有什么想法请分享。谢谢。
const [userName, setUsername] = useState<string | undefined>()
useEffect(() => {
const fetchDetaiils = async () => {
if (inProgress === InteractionStatus.None) {
try {
const signedInUser = identityInstance.getAllAccounts()[0]
const resp = await identityInstance.acquireTokenSilent({
scopes: ['user.read'],
account,
})
const token: Token = resp?.idTokenClaims
setUsername(token.email)
} catch (err: unknown) {
if (err instanceof Error) {
console.log(err)
if (err?.name === 'InteractionRequiredAuthError') {
// await instance.acquireTokenRedirect(loginRequest)
}
}
}
}
}
fetchDetaiils()
Run Code Online (Sandbox Code Playgroud)
小智 3
如这些Microsoft 文档中所述,应用程序之间的 SSO 需要在静默请求中使用 login_hint 或 sid(会话 ID)参数。
login_hint 和 sid 的值可以从应用程序 1 中获取的 ID 令牌中提取。有关详细信息,请参阅MSAL 浏览器登录文档
| 归档时间: |
|
| 查看次数: |
6899 次 |
| 最近记录: |