루비 SDK를 통해 사용자 인증에 AWS Cognito 서비스를 사용하려고합니다.AWS Cognito 사용자 인증 SRP_A가 누락되었습니다.
나는
resp = client.confirm_sign_up({client_id: "ClientIdType",
secret_hash: "SecretHashType",
username: "UsernameType",
confirmation_code: "ConfirmationCodeType"
})
를 사용하는 방법
resp = client.sign_up({ client_id: "ClientIdType",
secret_hash: "SecretHashType",
username: "UsernameType",
password: "PasswordType",
user_attributes: [{ name:"AttributeNameType",
value: "AttributeValueType",
}],
validation_data: [{
name: "AttributeNameType",
value: "AttributeValueType",
}]
})
및 confirm_sign_up
를 사용하여 sign_up 과정을 확인 할 수 sign_up 할 수 있습니다하지만 오류를 얻고있다 initiate_auth 통해 사용자가 로그인하는 동안 누락 필수 매개 변수 SRP_Acog_provider.initiate_auth({client_id: "xxxxxxxxx", auth_parameters: { username: "xxx", password: "xxx"}, auth_flow: "USER_SRP_AUTH"})
SRP_A는 어디에서 찾을 수 있는지 나타냅니다.
나는이 문제를 조사했으며, 최선의 방법을 믿지 않는 사용자를위한 admin_initiate_auth
방법을 사용하는 것이 좋습니다.
AdminInitiateAuth를 사용하는 것이 가장 좋은 방법입니까? SRP_A 값을 얻을 수있는 방법이 있습니까? –
AdminInitiateAuth는 보안 서버 환경에서만 사용하기위한 것입니다. SRP_A는 기본적으로 클라이언트 측에서 생성 된 큰 정수입니다. 예를 들어 자바에서는 다음을 할 수 있습니다 : a = new BigInteger (EPHEMERAL_KEY_LENGTH, SECURE_RANDOM) .mod (N); A = g.modPow (a, N); https://github.com/aws/aws-sdk-android/blob/master/aws-android-sdk-cognitoidentityprovider/src/main/java/com/amazonaws/mobileconnectors/cognitoidentityprovider/CognitoUser.java#L2440 여기서 N은입니다. 큰 총리 –