Java AWS cognito新密码延续-Android
希望有人能在这方面帮助我,我已经尝试了好几天。我正在构建一个Android应用程序并集成Amazon Cognito登录。 我想使用admin面板在AmazonCognito中创建仅作为管理员的用户。这样做时,一个要求是用户更改密码。在匿名类CognitoUserPoolSignInProvider中,为了使用新密码验证用户,我在匿名类中有以下代码:Java AWS cognito新密码延续-Android,java,android,amazon-web-services,amazon,Java,Android,Amazon Web Services,Amazon,希望有人能在这方面帮助我,我已经尝试了好几天。我正在构建一个Android应用程序并集成Amazon Cognito登录。 我想使用admin面板在AmazonCognito中创建仅作为管理员的用户。这样做时,一个要求是用户更改密码。在匿名类CognitoUserPoolSignInProvider中,为了使用新密码验证用户,我在匿名类中有以下代码: @Override public void authenticationChallenge(final ChallengeContinua
@Override
public void authenticationChallenge(final ChallengeContinuation continuation) {
if ("NEW_PASSWORD_REQUIRED".equals(continuation.getChallengeName())) {
NewPasswordContinuation newPasswordContinuation = (NewPasswordContinuation) continuation;
newPasswordContinuation.setPassword("users new password goes here");
continuation.continueTask();
}
}
我有一个单独的活动类,名为ChangePassword
。这将链接到用户界面,并从用户处获取编辑文本框中的输入
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_password);
password = (EditText) findViewById(R.id.newPassword);
submit = (Button) findViewById(R.id.submit);
String pass = password.getText().toString();
如何让用户输入匿名类以设置新密码?
非常感谢您提供的任何帮助您需要使用“单击回调”按钮输入用户密码。现在编写代码时,密码将设置为空字符串(或创建时EditText字段中的任何内容) 从这个开始:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_password);
final EditText password = (EditText) findViewById(R.id.newPassword);
Button submit = (Button) findViewById(R.id.submit);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String pass = password.getText().toString();
}
});
}
完成按钮单击操作设置后,创建一个覆盖authenticationChallenge方法的类实例。将该类传递给相应的AWS类进行身份验证。大概是这样的:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_password);
final EditText password = (EditText) findViewById(R.id.newPassword);
Button submit = (Button) findViewById(R.id.submit);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String pass = password.getText().toString();
AuthenticationHandler h = new AuthenticationHandler() {
@Override
public void onSuccess(CognitoUserSession cognitoUserSession, CognitoDevice cognitoDevice) { }
@Override
public void getAuthenticationDetails(AuthenticationContinuation authenticationContinuation, String s) { }
@Override
public void getMFACode(MultiFactorAuthenticationContinuation multiFactorAuthenticationContinuation) { }
@Override
public void authenticationChallenge(ChallengeContinuation continuation) {
if ("NEW_PASSWORD_REQUIRED".equals(continuation.getChallengeName())) {
NewPasswordContinuation newPasswordContinuation = (NewPasswordContinuation) continuation;
newPasswordContinuation.setPassword(pass);
continuation.continueTask();
}
}
@Override
public void onFailure(Exception e) { }
};
CognitoUserPool pool = new CognitoUserPool(getApplicationContext(), "poolId", "clientId", "clientSecret", Regions.US_WEST_2);
pool.getUser("userId").getSession(h);
}
});
}