是否可以将我的Android应用程序,Cognito用户池用户状态从FORCE_CHANGE_PASSWORD更改为CONFIRMED?或从RESET_REQUIRED到CONFIRMED?如果是,我可以使用哪种API调用?事实上,我将用户导入到Cognito,我找不到使用我的应用程序如何将它们转换为CONFIRMED状态的方法或示例.谢谢
要将Cognito用户池用户状态从FORCE_CHANGE_PASSWORD更改为CONFIRMED-
1.with aws-cli:
使用临时密码获取会话令牌
aws cognito-idp admin-initiate-auth --user-pool-id us-west-2_xxxxxxx --client-id xxxxxxx --auth-flow ADMIN_NO_SRP_AUTH --auth-parameters USERNAME=xxx,PASSWORD=xxx
Run Code Online (Sandbox Code Playgroud)使用会话令牌设置新密码
aws cognito-idp admin-respond-to-auth-challenge --user-pool-id xxxx --client-id xxxx --challenge-name NEW_PASSWORD_REQUIRED --challenge-responses NEW_PASSWORD=xxx,USERNAME=xxx --session session_key_from_previous_token
Run Code Online (Sandbox Code Playgroud)2.with aws-sdk:
使用临时密码获取会话令牌
cognitoidentityserviceprovider.adminInitiateAuth(
{
AuthFlow: 'ADMIN_NO_SRP_AUTH',
ClientId: 'xxx',
UserPoolId: 'xxx',
AuthParameters:
{ USERNAME: 'xxx', PASSWORD: 'temporary_password' }
}, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
Run Code Online (Sandbox Code Playgroud)使用会话令牌设置新密码
var params = {
ChallengeName: 'NEW_PASSWORD_REQUIRED',
ClientId: 'xxxx',
ChallengeResponses: {
USERNAME: 'xxx',
NEW_PASSWORD: 'xxx'
},
Session: 'session_key_from_previous_token'
};
cognitoidentityserviceprovider.respondToAuthChallenge(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
Run Code Online (Sandbox Code Playgroud)注意:如果收到有关" 无法验证客户端的秘密哈希 "的错误,请创建另一个没有机密的应用程序客户端并使用它.
要更改用户的状态,您只需完成相应的流程即可。要更改FORCE_CHANGE_PASSWORD为CONFIRMED,您需要使用一次性密码并登录并更改密码。对于RESET_REQUIRED,您需要使用“忘记密码”流程,这会将状态更改为CONFIRMED。
| 归档时间: |
|
| 查看次数: |
3390 次 |
| 最近记录: |