認証プロバイダーとしてCognitoユーザープールで構成されたAWS Cognito IDプールがあります。
Cognito IDプール(例:us-east-1:XXaXcXXa-XXXX-XXXX-XXX-XXXXXXXXXXXX)にIDのIDがあるとします。このIDにはCognitoユーザープールのユーザーへのリンクログインがあります。
ID IDを使用して、リンクされたユーザーの詳細(電子メール、電話、ユーザー名)を取得するにはどうすればよいですか?
ID IDと資格情報を取得するためにCognitoフェデレーションIDサービスと交換するIDトークンには、すべてのユーザー属性が既にあります。サービスを呼び出す必要はありません。
これはJWTトークンであり、クライアント上の任意のライブラリを使用して値をデコードできます。 Cognitoユーザープールによって販売されるトークンの詳細については、 このガイド を参照してください。
または、アクセストークンを使用して GetUser API を呼び出して、すべてのユーザー情報を返すこともできます。
AWS cognito-idp list-usersには、属性に基づいてフィルタリングできるフィルターオプションがあります。 「sub」は、説明しているIDに一致する属性です。
例えばコマンドラインで:
aws cognito-idp list-users --user-pool-id us-east-1_abcdFghjI --filter "sub=\":XXaXcXXa-XXXX-XXXX-XXX-XXXXXXXXXXXX\""
これにはuser-pool-idも必要です。さらに、これがどのように実装されているか、または多数のユーザーをフィルタリングするときのパフォーマンスがわからないが、カスタムアトリビュートがフィルターで使用できないことを、カーテンの後ろに何らかのインデックスが存在することを示すヒントとして取り上げます。
私は同様の問題に直面し、ひっかきすぎた後、詳細を引き出す正確な方法を見つけることができませんでした。私のユースケースは、Android APP。で詳細を取得することでした。AWSMobileクライアントAPIコードを調べた後、私は以下を見つけました。
Log.i(TAG、 "User Details" + AWSMobileClient.getInstance()。getUserAttributes()。toString());
推奨事項-Android開発に使用している場合はAWSMobileclientを使用してみてください。これは開発に推奨される新しいライブラリです。