私はAWS javascript SDKを使用し、FacebookとGoogleで正常にログインできるAngularアプリを持っています。私はCognito IDを作成することができました。私は自分のFederated IdentityプールにIDを表示します。私はIAM認証済みのAPIエンドポイントを使用することもできます(私は呼び出しているLambdaでユーザーのcognitoIdを参照しています)。node.jsで認証されたユーザーのメールアドレスを取得する方法AWS Lambda?
データベース(DynamoDB)のキーとしてユーザーの電子メールアドレスを使用したいので、信頼できるソースであるCognito(優先)か認証プロバイダのどちらかからユーザーの電子メールアドレスにアクセスする方法を理解しようとしています。 JWT。
ユーザーのメールアドレスにアクセスする最も良い方法は何ですか?
更新:クライアント側(javascript)では、GoogleトークンとFacebookトークンでフェデレーションIDを使用しています。社会的なログインが働いている、と私はうまくCognitoで認証を受けることができ、ログインを渡す:
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:****',
Logins: {
'accounts.google.com': authResult['id_token']
}
});
私はその後、AWS.config.credentials.get()
を行うと、私はAWS.config.credentials.identityId
のようなものを得ることができますが、私はaccessTokenまたはメソッドにを見つけることができませんJWTを取得するために呼び出します。私はresult.getAccessToken().getJwtToken()
に電話する必要があると信じていますが、私はそれを見つけることができません。
accessTokenを取得したすべての例は、.authenticateUser(authenticationDetails())
を使用しているようですが、詳細にはユーザー名とパスワード(フェデレーテッド・ログインではない)が含まれています。
対応するための時間を割いていただきありがとうございます。今私が持っている問題は、私がaccessTokenを入手する方法を知らないということです。私は、資格情報を取得するために使用しているサンプルを使って質問を更新します。私が見つけることができるすべての例は、ユーザー名とパスワードの資格情報を使用しているようですが、私はGoogleとFacebookのプロバイダで連携IDを使用しています。 – destro