AWS JavaScript SDK を使用する Angular アプリがあり、Facebook と Google で正常にログインできます。Cognito ID を作成でき、Federated Identity プールに ID が表示されます。IAM 認証済み API エンドポイントを使用することもできます (呼び出している Lambda でユーザーの cognitoId を確認できます)。
ユーザーのメール アドレスをデータベース (DynamoDB) のキーとして使用したいので、Cognito (推奨) または認証プロバイダーの JWT のいずれかの信頼できるソースからユーザーのメール アドレスにアクセスする方法を見つけようとしています。
ユーザーのメールアドレスにアクセスする最良の方法は何ですか?
更新:クライアント側 (javascript) では、Google および Facebook トークンで Federated Identities を使用しています。ソーシャル ログインは機能しており、ログインを渡すことで、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
が、JWT を取得するために呼び出す accessToken またはメソッドが見つかりません。に電話する必要があると思いますresult.getAccessToken().getJwtToken()
が、見つかりません。
accessToken を取得する例はすべて を使用しているように見えます.authenticateUser(authenticationDetails())
が、詳細にはユーザー名とパスワードが含まれています (Federated login ではありません)。