Amazon Cognito 사용자의 email_verified 속성 관련 문제를 해결하려면 어떻게 해야 합니까?

4분 분량
0

Amazon Cognito 사용자의 email_verified 속성과 관련된 모든 문제를 해결하고 싶습니다.

간략한 설명

Amazon Cognito 사용자 풀에는 개별 사용자 식별에 사용되는 일련의 표준 속성이 있습니다. 사용자의 이메일 주소가 확인되었는지 여부를 나타내는 email_verified 속성은 다음과 같은 상황에서 변경할 수 있습니다.

  • 사용자가 이메일 주소를 업데이트합니다. 사용자가 이메일 주소를 업데이트하면 Amazon Cognito는 email_verified 속성을 미확인으로 변경합니다.
  • 이메일 주소가 별칭으로 구성됩니다. 그러면 중복 이메일 주소를 가진 사용자가 생성됩니다. 이메일 주소를 별칭으로 설정하면 한 명의 사용자만 이메일 주소 값을 email_verified 속성으로 보유할 수 있습니다. 새 사용자의 계정 확인에 성공하면 이메일 주소 별칭이 새 사용자에게 전송됩니다. 그러면 이전 사용자의 이메일 주소가 확인되지 않습니다. 자세한 내용은 사용자 풀 속성을 참조하고 로그인 특성 사용자 지정 섹션을 검토하십시오.
  • 페더레이션 사용자 또는 페더레이션 사용자와 연결된 사용자는 이메일 매핑으로 로그인합니다. 페더레이션 사용자가 로그인할 때는 사용자 풀에 필요한 각 사용자 풀 속성에 대한 매핑이 있어야 합니다. 이메일 속성이 매핑되면 email_verified 속성의 기본값이 확인되지 않음으로 변경됩니다.

해결 방법

email_verified 속성 관련 문제를 해결하려면 상황에 맞는 단계를 따르십시오.

중요: 다음 예제 AWS Command Line Interface(AWS CLI) 명령에서 예제 문자열의 모든 인스턴스를 사용자 값으로 변경합니다. (예를 들어, **"example_access_token"**을 액세스 토큰 값으로 변경합니다.)

이메일 주소 업데이트 후 확인

사용자 업데이트 후 이메일 주소를 확인하려면:

1.    Amazon Cognito가 업데이트된 이메일 주소로 인증 코드를 보내도록 하려면 사용자 풀에 대한 이메일 확인 설정을 구성합니다.

2.    필요한 경우 UpdateUserAttributes API 또는 AdminUpdateUserAttributes API를 호출하여 이메일 주소를 업데이트합니다.

update-user-attribute 명령의 예:

aws cognito-idp update-user-attributes --access-token "example_access_token" --user-attributes Name="email",Value="example_new_email"

admin-update-user-attributes 명령의 예:

aws cognito-idp admin-update-user-attributes --user-pool-id "example_user_pool_id" --username "example_username" --user-attributes Name="email",Value="example_new_email"

중요: AdminUpdateUserAttributes API를 사용하여 email_verify 속성을 True로 설정해서 이메일을 자동으로 확인할 수도 있습니다. 이메일 주소가 AdminUpdateUserAttributes API를 사용하여 자동으로 확인되는 경우 다음 단계는 필요하지 않습니다. UpdateUserAttributes API를 사용할 때는 다음 단계가 필요합니다.

3.    새 이메일 수신함에서 인증 코드를 확인합니다.

4.    VerifyUserAttribute API를 호출합니다. AccessTokenAttributeName의 파라미터를 **"email"**로 지정하고 이전 단계의 인증 코드를 입력합니다.

verify-user-attribute 명령의 예:

aws cognito-idp verify-user-attribute --access-token "example_access_token" --attribute-name "email" --code "example_verification_code"

초기 코드 만료 후 이메일 주소를 확인하려면:

1.    사용자 이름으로 애플리케이션에 로그인하여 액세스 토큰을 검색합니다.

2.    GetUserAttributeVerificationCode API를 호출합니다. AttributeName 파라미터를 **"email"**로 설정합니다.

get-user-attribute-verification-code 명령의 예:

aws cognito-idp get-user-attribute-verification-code --access-token "example_access_token" --attribute-name "email"

3.    VerifyUserAttribute API를 호출합니다. AccessTokenAttributeName의 파라미터를 **"email"**로 지정합니다. 이전 단계의 인증 코드를 입력합니다.

중복된 이메일 주소를 가진 새 사용자 확인

중복된 이메일 주소를 가진 새 사용자의 확인을 허용하려면:

1.    필요한 경우 SignUp API를 호출하여 구성된 이메일 주소로 사용자를 등록합니다.

sign-up 명령의 예:

aws cognito-idp sign-up --client-id "example_client_id" --username "example_username" --password "example_password" --user-attributes Name="email",Value="example_user_email"

2.    ForceAliasCreation 파라미터를 True로 설정하여 ConfirmSignUp API를 호출합니다.

confirm-sign-up 명령의 예:

aws cognito-idp confirm-sign-up --client-id "example_client_id" --username "example_username" --confirmation-code "example_confirmation_code" --force-alias-creation

가입 후 중복된 이메일 주소를 가진 새 사용자의 확인을 거부하려면:

1.    ForceAliasCreation 파라미터를 False로 설정하여 ConfirmSignUp API를 호출합니다.

참고: ForceAliasCreation은 기본적으로 False입니다. 따라서 요청에서 파라미터로 전달하지 않아도 됩니다.

deny-sign-up 명령의 예:

aws cognito-idp confirm-sign-up --client-id "example_client_id" --username "example_username" --confirmation-code "example_confirmation_code" --no-force-alias-creation

2.    ForceAliasCreation 파라미터를 False로 설정하면 API는 다음 오류를 반환합니다.

An error occurred (AliasExistsException) when calling the ConfirmSignUp operation: An account with the email already exists.

중복된 이메일 주소를 가진 새 사용자를 관리자로 생성

중복된 이메일 주소를 가진 새 사용자를 관리자로 만들려면:

1.    구성된 이메일 주소를 사용해서 AdminCreateUser API를 호출하려면 email_verified 속성을 True로 설정하고 ForceAliasCreation 파라미터를 True로 설정합니다.

admin-create-user 명령의 예:

aws cognito-idp admin-create-user --user-pool-id "example_user_pool_id" --username "example_username" --user-attributes Name="email",Value="example_user_email" Name="email_verified",Value="True" --force-alias-creation

email_verified 속성을 타사 ID 제공업체(idP)에 매핑

페더레이션 후에도 email_verified 속성을 계속 확인하려면:

1.    Amazon Cognito 콘솔에서 검증 상태에 대한 IdP 속성을 매핑하는 대상은 email_verified 속성입니다.

참고: 대부분의 OpenID Connect(OIDC) 제공자는 email_verified 속성을 포함합니다.


관련 정보

이메일 주소 및 전화번호 업데이트 확인

AWS 공식
AWS 공식업데이트됨 일 년 전