LoginSignup
5
1

More than 3 years have passed since last update.

AWS AppSync上でUser Poolsを使ってログインする

Posted at

はじめに

AWS AppSyncを使い、初めてのGraphQLに挑戦しています。個人的に引っかかった箇所があったため、ノートとして書き留めておきます。

Authentication error

AppSyncには"Queries"という機能があり、ブラウザ上でGraphQLのクエリを記述し、AWS DynamoDBからデータを取得することができます。APIエンドポイントの設定に依存していると思うのですが、GraphQLのクエリを実行する際に以下のようにJWTを要求されることがあります。
JWTerror.png

エラーを解決する

この場合、実行ボタンの横にあるLogin with User Poolsボタンをクリックしてユーザーログインを行うことで解決することができます。
ボタンを押すと以下のモーダルが表示されます。
Login_via_Cognito_User_Pools.png

ここで以下の項目を求められます。
- ClientId (User pool Client ID)
- Username
- Password

これらはいったいどこにあるのでしょう?

ClientId (User pool Client ID)

AWS Cognitoにありそうなことが"Login with User Pools"の名前から察することができます。
AWS Cognito > App integration > App client settings から以下の画面にたどり着くことができます。
clientId.png

ここで記載されているIDが該当するIDになります。

Username

該当するUser poolに登録されているUsernameです。自分でサインインしたユーザーを選択してください。
userPool.png

Password

Usernameで設定したユーザーでサインインした時のパスワードを設定します。

Queryを実行してみる

再度AppSyncに行き、Queryを実行してみましょう。"data" : {}の形で結果が表示されるはずです。
success.png

おわりに

AppSyncを理解するのに手間取っていますが、理解できたらGraphQLの理解をするためには便利そうです。みなさんどうやってAppSyncを勉強しているのでしょうか?コメント等で教えて頂けたらありがたいです。

5
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1