2016-06-18 3 views
0

AWS Cognito에서 액세스 토큰을 얻으려는 전화입니다. 내 백엔드에서 사용자를 인증하는 Developer Authenticated Identities workflow 을 구현하고 있습니다. 내 코드 :AWS Cognito : 개발자 인증 ID

cognitoIndentityClient = Aws::CognitoIdentity::Client.new(
     region: 'us-east-1', 
     credentials: permanent_aws_creds, 
    ) 
developerProviderName = '1.Got From Developer Provider Name under Custom in Cognito Console' 
identityPoolId = 'us-east-1:Xxxxx' 

resp = cognitoIndentityClient.get_open_id_token_for_developer_identity(
     identity_pool_id: identityPoolId, 
     logins: { 
      developerProviderName => UniqueIdentityTokenProviderFromMYBackend 
     } 
    ) 

resp2 = cognitoIndentityClient.get_credentials_for_identity(
     { 
      identity_id: resp['identity_id'], 
      logins: { 
       'cognito-identity.amazonaws.com' => resp['token'] 
      } 
     } 
    ) 

내 질문 : 1. 어떻게 사용자 풀에 사용자를 만들 수 있습니다 위의 호출 후 (MFA와 모든 것을 가능)을? ID는 내 콘솔에서 생성되지만 그 후에는 분실된다는 것을 알 수 있습니다.

답변

0

인증 공급자 섹션의 사용자 지정 탭에서 ID 풀 구성에서 개발자 공급자 이름이 설정되어 있고 위의 코드 값과 일치하는지 확인할 수 있습니까? 이는 오류의 가능한 원인 중 하나 일 수 있습니다.

다른 질문에 답변하십시오. Cognito의 '사용자 풀'기능을 사용하려면 개발자 인증 ID를 구현할 필요가 없습니다. 이들은 두 가지 독립적 인 기능입니다. Cognito 개발자 인증 ID를 사용하면 자신의 인증 시스템에 Cognito ID를 통합 할 수 있습니다. Cognito가 사용자를 관리하고 사용자 이름과 비밀번호를 기반으로 가입, 로그인 및 MFA를 허용하려면 '사용자 풀'기능이 올바른 선택입니다. User 풀에서 관리하는 사용자는 Cognito ID와 연합 할 수도 있습니다.

+0

감사합니다. 내가해야만하는 것은 get_credentials_for_identity()의 developerProviderName 키 대신 cognito-identity.amazonaws.com을 사용하는 것입니다. 그래도 사용자에 대한 질문이 있습니다. 도와 주실 수 있습니까? – premunk

+0

또한 코드를 반영하도록 코드를 수정했습니다. 루비 예제가 없으므로 누군가에게 도움이 될 수 있습니다. – premunk

+1

예, 고마워요. 또한 문제의 원래 오류 메시지를 유지하여 동일한 문제를 겪고있는 사람에게 유용합니다. 현재 사용자 풀에는 루비 SDK가 없습니다. 하지만 그것은 안드로이드, IOS 및 자바 스크립트에서 사용할 수 있습니다. –

관련 문제