amazon-web-services - 即使令牌已过期,AWS“CognitoUserSession”也始终返回 true
问题描述
我有一个包含以下代码的 lambda 函数;
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)
}
我面临的问题是即使idToken和accessToken已过期,检查cachedSession.isValid()总是返回 true。但是从他们的官方文档来看,只有当accessToken和idToken有效时它才应该返回 true。
这里有什么问题。任何帮助将不胜感激。
作为参考,我遵循此https://gist.github.com/kndt84/5be8e86a15468ed1c8fc3699429003ad来实施授权流程。
解决方案
推荐阅读
- c# - 如何在c#中为一组对象赋值
- php - 为什么我无法使用发布请求使用 jquery 更新数据库中的数据?
- java - 无法创建适当的 N 选择 R 方法
- bash - 如何在不获取所有组合的情况下获得成对的大括号扩展?
- cassandra - 使用日期和时间戳作为分区键和集群键
- c# - Google Dialogflow V2 的 C# 库
- dart - 如何在 Flutter 中将一个小部件与屏幕顶部对齐并将另一个小部件居中到屏幕中间?
- javascript - 如何制作异步/等待获取帖子?收到 500 内部服务器错误
- java - 无限通量和批量写入数据库
- grails - 在 grails 3 中,使用命令对象,你如何不更新说密码字段?