2016-06-18 15 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とすべてのことを可能にする)、ユーザプール内のユーザーを作成することができますか?アイデンティティは私のコンソールに作成されていますが、それ以降は失われています。

答えて

0

認証プロバイダセクションのカスタムタブのIDプール設定で、開発者プロバイダ名が設定されており、それが上記のコードの値と一致することを確認できますか?これはエラーの原因の1つかもしれません。

他の質問にお答えします。 Cognitoの「ユーザープール」機能を使用するには、開発者認証IDを実装する必要はありません。これらは2つの独立した機能です。 Cognito開発者の認証済みIDを使用すると、Cognito IDを使用して独自の認証システムを統合できます。 Cognitoがユーザーを管理し、ユーザー名とパスワードベースのサインアップ、サインイン、およびMFAを許可する場合は、「ユーザープール」機能が正しい選択になります。ユーザープールによって管理されるユーザーは、Cognito IDと連合することもできます。

+0

ありがとうございました。私がしなければならなかったのは、get_credentials_for_identity()のdeveloperProviderNameキーの代わりにcognito-identity.amazonaws.comでした。私はユーザーについての質問がありますが、あなたはそれを私に助けてくれますか? – premunk

+0

また、私はそれを反映するようにコードを修正しました。ルビーの例はゼロだったので、これは誰かに役立つかもしれません。 – premunk

+1

確かに、ありがとう。また、同じ問題を抱えている人に便利なように、元のエラーメッセージを質問に残しておいてください。現在のところ、ユーザープール用のRuby SDKはありません。しかし、それはアンドロイド、iOSとjavascriptで利用可能です。 –

関連する問題