4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SDKでCognitoにアクセス時に「Access Token does not have required scopes」エラーが出た

Last updated at Posted at 2025-02-15

はじめに

使用技術はフロントエンドではReact、バックエンドではGoを使用
Cognitoを使ってユーザーを登録し、Cognitoから取得したアクセストークンを使用してバックエンドで認証。
認証ができたらCognitoからユーザー情報を取得したかったが、そこでAccess Token does not have required scopesとエラーが出た。

その時の解決方法の備忘録です。

結論

どうやらトークンに含まれているscopes(スコープ)が足りていないらしい。
必要なスコープを追加することで解決した。

今回使用したいCognitoのAPIはGetUserでここにアクセスして情報を取得するにはaws.cognito.signin.user.adminというスコープが必要。

公式ドキュメント

スクリーンショット 2025-02-15 10.23.37.png

解決方法

スクリーンショット 2025-02-15 10.28.17.png

ユーザープール -> アプリケーションクライアント -> 任意のアプリケーションを選択 -> ログインページタグ -> 編集を押す

スクリーンショット 2025-02-15 10.37.51.png

マネージドログインページを編集画面に遷移し、画面を下にスクロールするとOpenID Connectのスコープというフィールドがあります。
トグルを開いてaws.cognito.signin.user.adminにチェックを入れる
変更を保存するを忘れずに。

これでトークンの中にスコープが含まれようになりますが、今回は一度フロントエンドで取得しバックエンドに渡しているので、フロントエンドにもスコープを定義してあげます。

フロントエンドの.envファイルにも同様にスコープを追加する。

.env
VITE_COGNITO_SCOPE="email openid phone profile aws.cognito.signin.user.admin"

これでアクセストークンに必要なスコープが含まれ、無事にバックエンドからユーザー情報を取得できました!

4
1
0

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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?