首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用react-aad-msal在令牌过期后重定向身份验证循环

使用react-aad-msal在令牌过期后重定向身份验证循环
EN

Stack Overflow用户
提问于 2020-07-16 12:41:12
回答 1查看 1.8K关注 0票数 1

我试图用MSAL替换ADAL。用户第一次访问应用程序时,它会正确地进行身份验证,但我遇到的情况是,我们的应用程序在一段时间后进入重定向循环。我假设这是令牌过期的时候(我相信默认是1小时)。当应用程序在一个小时后空闲时,有时会发生这种情况,这就是为什么我认为这可能与获取新令牌的方式以及我刷新浏览器窗口的方式有关。

** AuthProvider.ts **

代码语言:javascript
复制
import { Configuration } from 'msal

// Msal Configurations
const config = {
   auth: {
      authority: 'https://login.microsoftonline.com/' + process.env.REACT_APP_AAD_TENANT,
      clientId: process.env.REACT_APP_AAD_CLIENT_ID,
      postLogoutRedirectUri: window.location.origin,
      redirectUri: window.location.origin,
      validateAuthority: true,
      navigateToLoginRequestUrl: false,
   },
   cache: {
      cacheLocation: 'sessionStorage', // This configures where your cache will be stored
      storeAuthStateInCookie: false, // Set this to "true" if you are having issues on IE11 or Edge
   },
} as Configuration

// Authentication Parameters
const authenticationParameters = {
   scopes: ['openid', 'api://' + process.env.REACT_APP_AAD_SCOPES],
}

// Options
const options = {
   loginType: LoginType.Redirect,
   tokenRefreshUri: window.location.origin + '/auth.html',
}

export const authProvider = new MsalAuthProvider(config, authenticationParameters, options)

然后,当调用我们的api时,我想我可以像下面这样调用getAccessToken方法,然后我将静默地接收一个有效的令牌,但我只是在一个重定向循环中结束。

代码语言:javascript
复制

我想知道为什么它在用户第一次访问应用程序时起作用,而不是在试图刷新令牌时起作用。我认为Azure的配置是正确的,因为它第一次就起作用了。这可能是iframe /浏览器的问题,还是代码问题?

1:https://i.stack.imgur.com/6Vkwn.png

EN

回答 1

Stack Overflow用户

发布于 2020-07-21 08:29:10

使用refresh token获取合法token,需要调用msal.js token接口acquireTokenSilent。有关如何使用msal.js获取令牌的更多信息,请参阅this document

您可以参考您的方案的msal.js sample

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62927580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档