Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用react aad msal在令牌到期后重定向身份验证循环_Reactjs_Azure_Redirect_Msal - Fatal编程技术网

Reactjs 使用react aad msal在令牌到期后重定向身份验证循环

Reactjs 使用react aad msal在令牌到期后重定向身份验证循环,reactjs,azure,redirect,msal,Reactjs,Azure,Redirect,Msal,我试图用MSAL替换ADAL。用户第一次访问它正确验证的应用程序时,我发现我们的应用程序在一段时间后进入重定向循环。我假定这是令牌过期的时间(我相信默认情况下是1小时)。有时当应用程序在一小时后空闲时会发生这种情况,这就是为什么我认为这可能与获取新令牌的方式以及刷新浏览器窗口有关 **AuthProvider.ts** import { Configuration } from 'msal // Msal Configurations const config = { auth: {

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

**AuthProvider.ts**

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方法,然后我会静默地接收一个有效的令牌,但我只是在一个重定向循环中结束

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

[![IdResponse令牌类型未定义][1][1]
[1]: https://i.stack.imgur.com/6Vkwn.png

要使用刷新令牌获取有效令牌,需要调用msal.js令牌API acquireTokenSilent。有关如何使用msal.js获取令牌的更多信息,请参阅


您可以参考msal.js了解您的场景。

要使用刷新令牌获取有效令牌,您需要调用msal.js令牌API acquireTokenSilent。有关如何使用msal.js获取令牌的更多信息,请参阅


您可以参考msal.js了解您的场景。

请告知此答案是否对您有帮助。如果是这样,请记住使用复选标记将其标记为答案,以便社区中有类似问题的其他人可以更轻松地找到解决方案。另外,请抽出几分钟让我们知道我们是如何使用此链接的<>@InspiredJason我可以知道为什么对答案投反对票吗?它没有回答你的问题吗?请让我们知道这个答案是否对你有帮助。如果是这样,请记住使用复选标记将其标记为答案,以便社区中有类似问题的其他人可以更轻松地找到解决方案。另外,请抽出几分钟让我们知道我们是如何使用此链接的<>@InspiredJason我可以知道为什么对答案投反对票吗?它没有回答你的问题吗?关于这个问题有什么消息吗?我也遇到了同样的问题,提供的答案没有多大帮助。关于这个问题有什么消息吗?我也遇到同样的问题,提供的答案并没有多大帮助。