我有一个使用 react-aad-msal 库对 Azure AD 进行身份验证的 React 应用程序。下面的代码工作正常。但是当访问令牌过期时,getAccessToken 方法会自动获取新的访问令牌并保持应用程序运行。但相反,我要求用户在访问令牌过期时重新进行身份验证,以及用户是否在整个期间都处于空闲状态。有办法吗?
const apiAuthenticationParameters = {
scopes: [config.appScope],
forceRefresh: true,
};
const getAccessToken = () => {
return AuthProvider.getAccessToken(apiAuthenticationParameters);
};
答案 0 :(得分:0)
似乎没有直接的方法来检查令牌是否即将到期。您可以使用中间件引用此类似的 issue。
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 小时,请参阅 here。您可以在时间过后调用注销功能。