Amazon web services AWS“;CognitoUserSession“;即使令牌已过期,也始终返回true
我有一个lambda函数,其中包含以下代码Amazon web services AWS“;CognitoUserSession“;即使令牌已过期,也始终返回true,amazon-web-services,aws-lambda,amazon-cognito,Amazon Web Services,Aws Lambda,Amazon Cognito,我有一个lambda函数,其中包含以下代码 import { CognitoRefreshToken, CognitoAccessToken, CognitoIdToken, CognitoUserSession } from "amazon-cognito-identity-js"; ........................ .......................... const body =
import {
CognitoRefreshToken,
CognitoAccessToken,
CognitoIdToken,
CognitoUserSession
} from "amazon-cognito-identity-js";
........................
..........................
const body = JSON.parse(event.body);
const RefreshToken = new CognitoRefreshToken({
RefreshToken: body.refreshToken
});
const IdToken = new CognitoIdToken({
IdToken: body.idToken
});
const AccessToken = new CognitoAccessToken({
AccessToken: body.accessToken
});
const sessionData = {
IdToken: IdToken,
AccessToken: AccessToken,
RefreshToken: RefreshToken
};
const cachedSession = new CognitoUserSession(sessionData);
if(cachedSession.isValid()) {
//session is valid
} else {
//session expired(idToken and accessToken has expired)
}
我面临的问题是检查cachedSession.isValid()始终返回true,即使idToken和accessToken已过期。
但是从他们的官方文档来看,只有当accessToken和idToken有效时,它才应该返回true
这里出了什么问题。任何帮助都将不胜感激
为了便于参考,我遵循这个方法来实现授权流程。我在这里找到了答案。希望它也能帮助别人我遵循同样的要点,也有同样的问题。解决方案是使用CognitoIdentityServiceProvider而不是CognitoUserSession进行会话/令牌虚拟化?