내용으로 건너뛰기

Amazon Cognito에서 ForgotPassword API 호출을 사용하여 확인 코드 이메일 또는 SMS 문자 메시지를 전송하지 않는 이유는 무엇입니까?

4분 분량
0

ForgotPassword API 호출을 사용할 때 Amazon Cognito에서 확인 코드 이메일 또는 SMS(문자 서비스) 문자 메시지를 보내지 않은 이유를 알고 싶습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

스팸 및 정크 폴더 확인

확인 이메일이 사용자의 스팸 또는 정크 폴더에 있지 않은지 확인합니다.

사용자가 사용자 풀에 존재하는지 확인

사용자가 Amazon Cognito 사용자 풀에 존재하는지 확인합니다. Amazon Cognito 콘솔을 사용하여 사용자 풀의 사용자를 검색하려면 사용자 계정 관리 및 검색을 참조하십시오. AdminGetUser API 호출을 사용할 수도 있습니다.

사용자 상태 확인

사용자의 상태가 FORCE_CHANGE_PASSWORD가 아닌지 확인합니다.

관리자가 만든 사용자가 제공된 암호로 로그인할 때까지 사용자 상태는 기본적으로 FORCE_CHANGE_PASSWORD입니다.

사용자 상태가 FORCE_CHANGE_PASSWORD인 경우 사용자는 ForgotPassword API 호출을 사용할 수 없으며 확인 코드를 받지 못합니다. 대신 Amazon Cognito에서 사용자에게 암호를 변경하라는 메시지가 표시됩니다.

사용자의 AWS 계정 복구

사용자 이름과 전화번호가 확인되지 않은 상태에서 Forgot Password API를 호출하면 다음 오류 중 하나가 표시됩니다.

  • AWS CLI:
    "An error occurred (InvalidParameterException) when calling the ForgotPassword operation: Cannot reset password for the user as there is no registered/verified email or phone_number"
  • Amazon Cognito 콘솔:
    "Could not reset password for the account, please contact support or try again."

사용자의 계정을 복구하려면 사용자 계정 구성을 확인해야 합니다. 복구 메시지 전송 방법이 이메일, 전화, 이메일만, 전화만, 전화(사용 가능한 경우) 또는 없음인지 확인합니다.

다음 단계를 완료하십시오.

  1. Amazon Cognito 콘솔을 엽니다.
  2. 사용자 풀을 선택합니다.
  3. 인증에서 로그인을 선택합니다.
  4. 사용자 계정 복구 섹션에서 복구 메시지 전송 방법 아래의 옵션을 확인합니다. 그런 다음, 전송 방법이 사용자의 검증된 속성인지 확인합니다.
  5. 전송 방법이 사용자의 검증된 속성인지 확인합니다.

CONFIRMED 상태의 사용자에게 암호 복구를 위한 확인된 이메일 또는 전화번호가 없을 수 있습니다. 계정을 만들기 위해 확인 확인란을 선택하면 관리자가 만든 사용자 계정의 이메일과 전화번호를 확인해야 합니다.

이 문제를 해결하려면 다음 방법 중 하나를 사용하여 이메일 및 전화번호의 verified 상태를 true로 설정하십시오.

사용자 속성 업데이트

관리자인 경우 다음 AdminUpdateUserAttributes API 호출을 실행합니다.

aws cognito-idp admin-update-user-attributes --user-attributes Name=example-verification-method,Value=true --user-pool-id example-userpoolID --username example-user-name

참고: 사용자의 복구 메시지 전달 방법에 따라 example-verification-methodemail_verified 또는 phone_number_verified로 바꾸십시오. example-userpoolID를 사용자 풀의 ID로 바꾸고, example-user-name을 Forgot Password API 호출을 실행하려는 사용자의 이름으로 바꾸십시오.

사용자인 경우 로그인한 후 다음 UpdateUserAttributes API 호출을 실행합니다.

aws cognito-idp update-user-attributes --user-attributes Name=example-verification-method,Value=true --access-token example-access-token

참고: 사용자의 복구 메시지 전달 방법에 따라 example-verification-methodemail_verified 또는 phone_number_verified로 바꾸십시오. example-access-token을 액세스 토큰의 값으로 바꾸십시오.

사전 가입 Lambda 트리거
사전 가입 Lambda 트리거를 사용하여 사용자의 이메일 및 전화번호 속성을 verified로 설정하십시오.

SignUp
사용자인 경우 다음 단계를 완료하십시오.

  1. 다음 SignUP API 호출을 실행합니다.
    aws cognito-idp sign-up --client-id example-client-ID --username example-user-name
    참고: example-client-ID를 가입하려는 앱 클라이언트의 ID로 바꾸십시오. example-user-name을 사용자 이름으로 바꾸십시오.
  2. 이전 명령의 출력에 있는 Session 값을 기록해 둡니다.
  3. 다음 ConfirmSignUp API 호출을 실행합니다.
    aws cognito-idp confirm-sign-up --client-id example-client-ID --username example-user-name --confirmation-code example-confirmation-code
    참고: example-client-ID를 가입하려는 앱 클라이언트의 ID로 바꾸십시오. example-user-name을 사용자 이름으로 바꾸십시오. example-confirmation-code를 2단계에서 기록해 둔 Session 값으로 바꾸십시오.

관리자인 경우 다음 AdminConfirmSignUp API 호출을 실행합니다.

aws cognito-idp admin-confirm-sign-up --client-id example-client-ID --username example-user-name

참고: example-client-ID를 앱 클라이언트의 ID로 바꾸십시오. example-user-name을 사용자 이름으로 바꾸십시오.

SMS 메시징에 대한 계정 지출 한도 확인

Amazon Cognito는 Amazon Simple Notification Service(Amazon SNS)를 사용하여 SMS 문자 메시지를 전송합니다. 설정한 계정 지출 할당량이 계정 지출 한도를 초과하면 Amazon SNS는 SMS 메시지를 게시하지 않습니다.

계정 지출 한도를 확인하거나 변경하려면 AWS Management Console을 사용한 SMS 메시징 기본 설정 지정을 참조하십시오.

Amazon SES 할당량 확인

Amazon Cognito는 Amazon Simple Email Service(Amazon SES)를 사용하여 이메일을 전송합니다. 기본적으로 Amazon Cognito는 사용자 풀에 제한된 수의 일일 이메일을 허용합니다. 자세한 내용은 리소스 수 및 크기 할당량을 참조하십시오.

이메일 전송 횟수를 높이려면 Amazon SES 이메일 구성을 사용하도록 사용자 풀을 구성할 수 있습니다. 지침은 Amazon Cognito 사용자 풀의 이메일 설정을 참조하십시오.

AdminSetUserPassword API 호출을 사용하여 사용자 암호 재설정

관리자는 AdminSetUserPassword API 호출을 사용하여 Amazon Cognito 사용자 풀의 사용자 암호를 임시 또는 영구적으로 설정할 수 있습니다. 임시 암호가 있는 사용자는 임시 암호가 만료되기 전에 로그인하여 임시 암호를 변경해야 합니다. 사용자가 임시 암호를 재설정하거나 암호가 영구적인 경우 상태는 CONFIRMED로 변경됩니다.

관련 정보

SMS 전송 실패 이유

admin-get-user

AdminResetUserPassword

AWS 공식업데이트됨 5달 전