はじめに
AWS Cognito を利用する際、ログアウト処理の適切な設定は重要です。
特に logout_url と Allowed Logout URLs が一致していないと、意図したログアウト動作ができないことがあります。
本記事では、Cognito のログアウト設定を確認する手順や、AWS マネジメントコンソール・CLI での確認方法を紹介します。
書こうと思ったきっかけ
Cognito を利用した認証機能を実装する中で、ログアウト後のリダイレクト先の設定に問題が発生しました。
特に logout_url が Allowed Logout URLs に登録されていないとログアウト時にエラーとなることがありました。
そこで、ログアウト設定の確認手順を整理し、環境変数や AWS マネコン側でどのように設定すべきかを明確にするため、本記事をまとめることにしました。
確認手順について
AWS マネジメントコンソールでの確認
- AWS マネジメントコンソールにログイン
- Cognito コンソール にアクセス
-
ユーザープールを選択
- 該当のユーザープールを選択する
-
アプリ統合の設定
- 左のメニューから「アプリ統合」を開く
- 「アプリクライアントの設定」セクションを確認
-
Allowed Logout URLs の確認
- 「サインアウトURL」(Allowed Logout URLs)の項目を確認し、
logout_urlと比較 -
http/httpsの違いや末尾の/の有無にも注意
- 「サインアウトURL」(Allowed Logout URLs)の項目を確認し、
実際の確認画面
CLIでの確認方法
AWS CLI を使用して Allowed Logout URLs を取得することも可能です。
aws cognito-idp describe-user-pool-client \
--user-pool-id <USER_POOL_ID> \
--client-id <CLIENT_ID> \
--query "UserPoolClient.LogoutURLs"
これにより、Cognito に登録されている Allowed Logout URLs を取得できるので、logout_url と比較してください。
実際の確認画面
logout_url を確認する方法
logout_url がどこで設定されているかにより確認方法が異なります。
フロントエンドのコードで確認
アプリケーションのログアウト処理を実装している部分に logout_url が記述されている可能性があります。
const logout_url = `https://yourdomain.auth.<region>.amazoncognito.com/logout?client_id=<CLIENT_ID>&logout_uri=https://yourapp.com/logout`;
または、環境変数 (.env) に設定されていることもあります。
NEXT_PUBLIC_COGNITO_LOGOUT_URL=https://yourdomain.auth.<region>.amazoncognito.com/logout
バックエンド(API)の設定を確認
バックエンドでログアウト処理 (logout_url) を設定している場合、環境変数や設定ファイルに記述されている可能性があります。
export LOGOUT_URL="https://yourdomain.auth.<region>.amazoncognito.com/logout?client_id=<CLIENT_ID>&logout_uri=https://yourapp.com/logout"
または設定ファイル (config.py, .env, settings.json など) に記載されている可能性があります。
LOGOUT_URL = "https://yourdomain.auth.<region>.amazoncognito.com/logout?client_id=<CLIENT_ID>&logout_uri=https://yourapp.com/logout"
Cognitoのアプリ統合設定を確認
Cognito の「アプリ統合」設定に logout_url を設定している場合、AWS マネジメントコンソールから確認できます。
確認手順
- AWS マネジメントコンソールにログイン
- Cognito → ユーザープールを開く
- 「アプリ統合」 → 「アプリクライアントの設定」へ移動
- 「サインアウトURL」(Allowed Logout URLs) を確認
AWS CLI で確認
aws cognito-idp describe-user-pool-client \
--user-pool-id <USER_POOL_ID> \
--client-id <CLIENT_ID> \
--query "UserPoolClient.LogoutURLs"
Allowed Logout URLs と logout_url を一致させる必要がある
理由
Cognito のログアウト処理では、ユーザーがログアウト後にリダイレクトされるURLを logout_uri(または logout_url)として指定します。
このURLが Cognito の Allowed Logout URLs に登録されていないと、ログアウト時にエラーが発生します。
対処方法
✅ AWS マネジメントコンソールでの設定手順
- AWS マネジメントコンソールにログイン
- Cognito > ユーザープール > 対象のユーザープールを選択
- 「アプリ統合」 > 「アプリクライアントの設定」
- 「サインアウトURL」(Allowed Logout URLs) に
logout_urlを追加 - 保存して設定を反映
✅ CLIで設定を確認・更新
確認
aws cognito-idp describe-user-pool-client \
--user-pool-id <USER_POOL_ID> \
--client-id <CLIENT_ID> \
--query "UserPoolClient.LogoutURLs"
追加・更新
aws cognito-idp update-user-pool-client \
--user-pool-id <USER_POOL_ID> \
--client-id <CLIENT_ID> \
--logout-urls "https://yourapp.com/logout"
.env 側か、AWSのマネコン側どちらで変更すべき?
.env を変更すべきケース
-
.envに設定されているlogout_urlが Cognito のAllowed Logout URLsに登録済みの場合。 - フロントエンドやバックエンドのリダイレクト先を変更したい場合。
✅ 変更方法
LOGOUT_URL="https://yourapp.com/logout"
AWS マネコン側を変更すべきケース
-
.envのlogout_urlを変えたくない場合(他の環境と統一したい)。 - 複数の
logout_urlを許可したい場合(例: 本番用と開発用を両方登録)。 - 現在の
logout_urlが Cognito 側に登録されていない場合。
✅ 変更手順(AWS マネコン)
- AWS マネジメントコンソールにログイン
- Cognito → ユーザープール → 該当のユーザープールを選択
- 「アプリ統合」 > 「アプリクライアントの設定」
- 「サインアウトURL」(Allowed Logout URLs) に
.envのlogout_urlを追加 - 保存して適用
まとめ
logout_urlを変えても問題ないなら.envを Cognito のAllowed Logout URLsに合わせるlogout_urlを変えたくないなら Cognito 側のAllowed Logout URLsに.envのlogout_urlを追加する- 迷ったら、まず Cognito 側の
Allowed Logout URLsに.envのlogout_urlを追加してみるのが安全
これで、Cognito のログアウトURL設定を適切に管理できます!

