Python에서 Cognito의 FORCE_CHANGE_PASSWORD를 떠나는 방법
매니콘에서 사용자 등록하면 ...
상태가 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이 되어 있었어.
Reference
이 문제에 관하여(Python에서 Cognito의 FORCE_CHANGE_PASSWORD를 떠나는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KSMN/items/2243624540cd112e9f47
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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": "初回パスワード",
}
)
{
'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이 되어 있었어.
Reference
이 문제에 관하여(Python에서 Cognito의 FORCE_CHANGE_PASSWORD를 떠나는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KSMN/items/2243624540cd112e9f47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)