【发布时间】:2022-06-16 10:05:48
【问题描述】:
我正在为 aws cognito 编写一些服务器端登录代码,我想验证正在登录的用户是否存在于身份池中并获取分配给他们的属性。
对于电子邮件登录,我使用以下代码很好地工作 - 使用 aws-sdk:
let cognitoVerifyUser = null
try {
const cognitoIdProvider = new AWS.CognitoIdentityServiceProvider()
cognitoVerifyUser = await cognitoIdProvider.adminGetUser({
UserPoolId: pool.userPoolId,
Username: username,
}).promise()
} catch (e) {
throwError(e, e.message)
}
if (!cognitoVerifyUser) {
throwError(error.unauthorized, e)
}
const emailAttrib = cognitoVerifyUser.UserAttributes.find(a => a.Name == 'email')
if (!cognitoVerifyUser.Enabled || cognitoVerifyUser.UserStatus != 'CONFIRMED' || username != cognitoVerifyUser.Username || email != emailAttrib.Value) {
throwError(error.unauthorized, e)
}
但我一直试图为联合用户做类似的事情(例如通过谷歌登录)。 有人可以帮帮我吗?
【问题讨论】:
标签: javascript node.js aws-lambda amazon-cognito aws-sdk