Python에서 Cognito의 FORCE_CHANGE_PASSWORD를 떠나는 방법

2401 단어 파이썬cognitoAWS

매니콘에서 사용자 등록하면 ...



상태가 FORCE_CHANGE_PASSWORD로.


우선 첫회 인증이나.
import boto3

client = boto3.client('cognito-idp')

first_auth_response = client.admin_initiate_auth(
    UserPoolId = "ユーザープールID",
    ClientId = "クライアントID",
    AuthFlow = "ADMIN_NO_SRP_AUTH",
    AuthParameters = {
        "USERNAME": "ユーザー名",
        "PASSWORD": "初回パスワード",
    }
)


응답은 대체로 이런 느낌 ↓ (대부분 생략). 액세스 토큰이나 ID 토큰이 반환되어 곤란했다.NEW_PASSWORD_REQUIRED 어쩌면, 어쩔 수 없이 패스워드 변경해 주면 응?
{
    'ChallengeName': 'NEW_PASSWORD_REQUIRED', 
    'Session': '長い文字列', 
    'ChallengeParameters': {
        'USER_ID_FOR_SRP': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 
        'requiredAttributes': '[]', 
        'userAttributes': '{
            "email_verified":"true",
            "email":"[email protected]"}'
    }, 
    'ResponseMetadata': {略}
}

어쩐지



암호를 변경하여 인증.
session = first_auth_response["Session"]


auth_challenge_response = client.admin_respond_to_auth_challenge(
    UserPoolId = "ユーザープールID",
    ClientId = "クライアントID",
    ChallengeName="NEW_PASSWORD_REQUIRED",
    ChallengeResponses={
        "NEW_PASSWORD":"新しいパスワード",
        "USERNAME":"ユーザー名"
    },
    Session=session
)


응답은 대체로 이런 느낌 ↓ (대부분 생략). 무사히, 액세스 토큰이나 ID 토큰을 취할 수 있어 안심이나.
{
    'ChallengeParameters': {}, 
    'AuthenticationResult': {
        'AccessToken': '...', 
        'ExpiresIn': 3600, 
        'TokenType': 'Bearer', 
        'RefreshToken': '...', 
        'IdToken': '...'
    }, 
    'ResponseMetadata': {略}
}

스테이터스도 CONFIRM이 되어 있었어.

좋은 웹페이지 즐겨찾기