如果用户未使用AuthenticationHandler登录,也无法确认该用户,是否可以更新用户属性?这个想法是,当用户注册他们的帐户时,在“确认”他们的帐户之前,用户将他们的电子邮件更改为不同的电子邮件地址。我曾尝试使用UpdateAttributesHandler,但我收到了异常。
(1)如果对于用户对象,我使用userpool.getCurrentUser()或userpool.getUser(),则会收到以下异常:
W/System.err: com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoNotAuthorizedException: User-ID is null
(2)如果对于用户对象,我使用userpool.getUser(“”),我收到以下异常:
W/System.err: com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoNotAuthorizedException: user is not authenticated
(3)如果对于用户对象,我用户userpool.getUser(“”),我收到以下异常:
W/System.err: com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoNotAuthorizedException: user is not authenticated
我的实施如下:
user = userPool.getCurrentUser();
UpdateAttributesHandler handler = new UpdateAttributesHandler() {
@Override
public void onSuccess(List<CognitoUserCodeDeliveryDetails> list) {
// set listener
mOnCognitoUpdateUserAttributesListener.onSuccess(list);
}
@Override
public void onFailure(Exception exception) {
exception.printStackTrace();
// resend code failed
Log.e(TAG, exception.toString());
// set listener
mOnCognitoUpdateUserAttributesListener.onFailure(exception);
}
};
user.updateAttributesInBackground(userAttributes, handler);
此请求每次都失败,除了我之前表达过的例外情况。能够更新用户信息的缺失是什么? AWS文档中未提及此问题:https://docs.aws.amazon.com/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-android-sdk.html
先谢谢你了!
答案 0 :(得分:0)
执行此操作的一种方法是根据架构中的要求指定电子邮件。使用AdminCreateUser配置用户服务器端,并通过SMS将密码发送给用户。当用户第一次登录时,他们必须设置他们的电子邮件。