【发布时间】:2019-04-22 22:21:47
【问题描述】:
我的应用程序是使用 2 项服务进行身份验证的过程,其中一项是 AWS Cognito。当用户通过身份验证时(Cognito 提供的 JWT 令牌也是如此),我尝试通过 AdminListGroupsForUser API 调用列出该用户的组。我得到了 UserNotFoundException,这很奇怪,因为之前的调用刚刚使用相同的凭据对该用户进行了身份验证?
我尝试了以下方法:
router.post("/groups/list", (req, res, next) => {
const { email, limit, nextToken } = req.body;
const listGroupsForUserParams = getAdminListGroupsForUserParams({
email,
limit,
nextToken
});
const getUserParams = getAdminGetUserParams(email);
cognitoClient.adminListGroupsForUser(listGroupsForUserParams, (listErr, listData) => {
cognitoClient.adminGetUser(getUserParams, (getErr, getData) => {
console.log(listErr); // "UserNotFoundException"
console.log(listData); // null
console.log(getErr); // null
console.log(getData); // User
});
});
});
listGroupsForUserParams 和 getUserParams 包含相同的信息,即:
{
UserPoolId: "...",
Username: "test@example.com" // I use email as Username
}
我不明白前一个调用无法在池中找到用户但后一个调用如何?
见(参考):
【问题讨论】:
-
您的 cognitoClient 的区域设置是否正确?
-
@Deepthi 是的,该区域是正确的。我想如果不是这样,即使是第二次调用
adminGetUser也会失败
标签: javascript aws-sdk amazon-cognito