2016-06-22 12 views
13

認証プロバイダとしてCognito User Poolで構成されたAWS Cognito Identity Poolがあります。Cognito IDを使用してユーザー属性(ユーザー名、電子メールなど)を取得する方法

Cognito Identity Pool(この例ではus-east-1:XXaXcXXa-XXXX-XXXX-XXX-XXXXXXXXXXXX)にアイデンティティのIDがあり、このアイデンティティにCognito User Poolのユーザーがリンクされていると仮定します。

アイデンティティIDを使用すると、リンクされたユーザーの詳細(メール、電話、ユーザー名)を取得するにはどうすればよいですか?

答えて

8

アイデンティティIDと資格情報を取得するためにCognito連合IDサービスと交換するIDトークンは、すでにすべてのユーザー属性を持っています。どのサービスにも特別な電話は必要ありません。

これはJWTトークンであり、クライアント上の任意のライブラリを使用して値をデコードできます。 Cognitoユーザープールによって販売されるトークンの詳細については、this guideを参照してください。

また、アクセストークンを使用してGetUser APIを呼び出すと、すべてのユーザー情報が返されます。

+0

私は、1つのラムダ関数を呼び出すためにユーザーにアクセス権を与えています。呼び出されると、context.identity.cognito_identity_idを取得できます。それで、identitiy_idを使ってユーザー情報を取得したいのですが、JWTトークンを取得する方法はありますか?ペイロードのラムダ関数に安全に渡すことはできますか? – gehad

+0

はい。方法については、[この記事](https://forums.aws.amazon.com/thread.jspa?messageID=727497򱧉)を参照してください。 –

+0

GetUser APIを試しましたが、GetUser操作を呼び出すときにエラーが発生しました(InvalidParameterException):1妥当性検査エラーが検出されました: 'accessToken'の値が制約を満たさない:正規表現パターン[A-Za-z0 -9 -_ =。] + ' – gehad

-4
console.log('username is ' + cognitoUser.getUsername()); 
+0

OPのみの問題をどのように解決するかについてのいくつかの説明とともに、コードのみの回答を増やしたいですか? – Yunnosch

関連する問題