2017-02-20 21 views
0

ラムダ関数でCognitoユーザーオブジェクトを取得する方法はありますか? 私のクライアントは既に身元を送っていて、context.identity.cognitoIdentityIdがありますが、これを有効なユーザーオブジェクトに「変換」する方法はありませんでした。AWS Lambda Cognitoアクセス

たとえば、認証されたユーザーのユーザー名、電子メールアドレス、または別のコグニティブ属性を知りたい場合、それを取得する正しい方法は何ですか?

このidentityIdは、ユーザーの一意の識別子ですか?ユーザーが自分のfbアカウントに登録した後に、自分のTwitterアカウントに接続すると、ID IDはまだ残っていますか?または新しい?それが新しいのであれば、古いIDを新しいIDにどのように「接続」できますか?あなたはCognito連携アイデンティティを経由してAWSの資格情報のCognitoユーザープールのIdトークンを交換するので、もし

おかげ

b0c1

答えて

1

元のユーザー名/メールは、同上におけるクレームの全てをフェデレーションの境界を越えることはありません。トークンは失われます。

APIゲートウェイを使用してLambdaをフロントエンドする場合は、Cognito Authorizerオプションで直接Cognito User Pools Idトークンを使用してリクエストを認証することができ、IDトークンのすべてのクレームがコンテキストとともに渡されます。詳細here

残念ながら、複数のプロバイダを同じIDにリンクしようとしているようですが、これはフェデレーションIDを使用しない限り実行できません。しかし、フェデレーションIDで2つのアイデンティティプロバイダアカウントをリンクする方法についての質問に答えるには、両方のトークンをログインマップに同時に渡すと、2つのIDがリンクされます。

"graph.facebook.com":"facebookToken" 
"accounts.google.com":"googleToken" 

あなたが前にいずれかのアカウントをリンクしたことがない場合は、アイデンティティが合併すると、あなたはどちらか一方を取得する前に、あなたはどちらかリンクしている場合、あなたは、新しいIDを取得します。

+0

cognitoを使用して連邦の身元を認証し、実際の身元を解決するためにAPI Gateway経由でLambdaを呼び出しますか? – b0c1

関連する問題