0

我有一个使用react-aad-msal库对 Azure AD 进行身份验证的反应应用程序。下面的代码工作正常。但是当访问令牌过期时,getAccessToken 方法会自动获取新的访问令牌并让应用程序继续运行。但相反,我要求用户在访问令牌过期时重新进行身份验证,以及用户是否在整个持续时间内都处于空闲状态。有没有办法做到这一点?

  const apiAuthenticationParameters = {
    scopes: [config.appScope],
    forceRefresh: true,
  };

  const getAccessToken = () => {
    return AuthProvider.getAccessToken(apiAuthenticationParameters);
  };
4

1 回答 1

0

如果令牌即将过期,似乎没有直接的方法来检查令牌。您可以参考中间件的类似问题

const checkTokenExpirationMiddleware = store => next => action => {
  const token =
    JSON.parse(localStorage.getItem("user")) &&
    JSON.parse(localStorage.getItem("user"))["token"];
  if (jwtDecode(token).exp < Date.now() / 1000) {
    next(action);
    localStorage.clear();
  }
  next(action);
};

访问令牌的默认生命周期为 1 小时,请参见此处。您可以在时间之后调用注销功能。

于 2020-12-21T08:50:06.203 回答