我有一个javascript项目,我使用aws-sdk。不,我想使用amazon-cognito-identity-js。在页面上它说:
请注意,适用于JavaScript的Amazon Cognito AWS SDK只是一个精简版本 AWS Javascript SDK命名为AWSCognito而非AWS。它 仅引用Amazon Cognito Identity服务。
事实上,我可以用例如:
创建CognitoIdentityServiceProviderCognitoIdentityServiceProvider = new AWS.CognitoIdentityServiceProvider();
但我该怎么做才能认证用户?根据{{3}}文档:
authenticationDetails = new CognitoIdentityServiceProvider.AuthenticationDetails({Userame: ..., Password: ...});
cognitoUser.authenticateUser(authenticationDetails, ...)
但CognitoIdentityServiceProvider对象没有AuthenticationDetails属性。
当我使用aws-sdk而不是amazon-cognito-identity-js时,我是否必须做一些不同的事情?
或者我的假设是错的,我需要两个,aws-sdk和amazon-cognito-identity-js?
答案 0 :(得分:2)
const cognito = new aws.CognitoIdentityServiceProvider({ region });
cognito.adminInitiateAuth({
AuthFlow: 'ADMIN_NO_SRP_AUTH',
ClientId: clientId,
UserPoolId: poolId,
AuthParameters: {
USERNAME: email,
PASSWORD: password,
},
});
答案 1 :(得分:0)
对于userName密码身份验证,它需要具有ADMIN_NO_SRP_AUTH。 我还添加了处理错误和成功的功能。有关数据中发送的响应和令牌的更多详细信息,可以检查是否为引用。
const cognito = new AWS.CognitoIdentityServiceProvider();
cognito.adminInitiateAuth({
AuthFlow: 'ADMIN_NO_SRP_AUTH',
ClientId: 'clientId',
UserPoolId: 'poolId'
AuthParameters: {
USERNAME: 'userName',
PASSWORD: 'password',
},
}, function(err, data) {
if (err) {
console.log(err, err.stack);
}
else {
console.log(data);
}
});