Amazon Cognito에서 사용자 암호를 복구하려고 합니다.
해결 방법
Amazon Cognito에서 사용자 암호를 복구하는 방법은 두 가지입니다.
- 인증된 이메일 또는 전화번호를 사용합니다.
- 관리자를 통한 사용자 비밀번호를 사용합니다.
이메일 또는 전화번호 인증
ForgotPassword API 명령을 사용하여 사용자 암호를 복구할 수 있습니다. ForgotPassword API 명령은 인증된 이메일 또는 인증된 전화번호로 복구 코드를 전송합니다. 복구 코드는 1시간 동안 유효합니다. 그런 다음, ConfirmForgotPassword API 명령을 사용하여 비밀번호를 재설정하는 확인 코드를 입력합니다.
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.
AWS CLI 명령:
ForgotPassword
aws cognito-idp forgot-password --client-id 38fjsnc484p94kpqsnet7mpld0 --username jane@example.com
출력:
{
"CodeDeliveryDetails": {
"Destination": "j***@e***.com",
"DeliveryMedium": "EMAIL",
"AttributeName": "email"
}
}
ConfirmForgotPassword
aws cognito-idp confirm-forgot-password --client-id 3n4b5urk1ft4fl3mg5e62d9ado --username=diego@example.com --password PASSWORD --confirmation-code CONF_CODE
참고: 다음 요구 사항을 모두 충족하는 경우 CLI 명령에서 --secret-hash를 전달해야 합니다.
- AWS CLI 명령에는 파라미터로 --client-id가 있습니다.
- 앱 클라이언트는 암호로 구성됩니다.
앱 클라이언트의 암호 해시를 계산하려면 [Amazon Cognito 사용자 풀 API에서 'Unable to verify secret hash for client
' 오류를 해결하려면 어떻게 해야 하나요?](https://repost.aws/ko/knowledge-center/cognito-unable-to-verify-secret-hash) 를 참조하십시오.
관리자 재설정
참고: 관리자가 아닌 경우 관리자에게 문의하여 다음 작업을 완료하십시오.
AdminResetUserPassword API 명령을 호출하면 현재 암호가 무효화되므로 이를 변경해야 합니다. API 명령을 호출한 후 사용자가 로그인을 시도하면 앱은 다음을 수행합니다.
- PasswordResetRequiredException를 다시 받으십시오.
- 사용자에게 암호 분실 흐름을 통해 암호를 재설정하도록 지시합니다.
또한 다음과 같은 경우 API를 호출하면 비밀번호 변경 코드가 포함된 메시지가 사용자에게 전송됩니다.
- 사용자 풀에 전화 인증이 설정되어 있고
- 사용자의 인증된 전화번호 또는 이메일이 있습니다.
AWS CLI 명령:
AdminResetUserPassword
aws cognito-idp admin-reset-user-password --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com
ConfirmForgotPassword
aws cognito-idp confirm-forgot-password --client-id 3n4b5urk1ft4fl3mg5e62d9ado --username diego@example.com --password PASSWORD --confirmation-code CONF_CODE
AdminSetUserPassword
관리자는 AdminSetUserPassword API 명령을 사용하여 사용자 풀에서 사용자 암호를 호출할 수도 있습니다. 암호는 임시 또는 영구적일 수 있습니다. 일시적인 경우에는 사용자 상태가 FORCE_CHANGE_PASSWORD 상태로 전환됩니다. 로그인하면 InitiateAuth/AdminInitiateAuth 응답에 the NEW_PASSWORD_REQUIRED 챌린지가 포함됩니다. 만료되기 전에 로그인하지 않으면 로그인할 수 없고 암호를 재설정해야 합니다. 사용자가 새로운 암호를 재설정하거나 암호가 영구적이면 사용자 상태가 CONFIRMED로 설정됩니다.
aws cognito-idp admin-set-user-password --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --password Hello@123 --permanent