概要
Next Auth (Auth.js v5) を使用したアプリケーションを Docker コンテナや本番環境にデプロイする際、AUTH_URL 環境変数を設定しないと GitHub OAuth 認証で以下のエラーが発生します:
開発環境 vs 本番環境
開発環境(npm run dev)
開発環境では Next.js が自動的にホスト情報を検出するため、AUTH_URL の設定は不要 です。
本番環境(Docker / npm run build && npm start)
本番環境では Next Auth がホスト情報を自動検出できないため、AUTH_URL の設定が必須 です。
Docker での設定例
docker run の場合
docker-compose.yml の場合
必要な環境変数一覧
| 変数名 | 開発環境 | 本番環境 | 説明 |
|---|---|---|---|
AUTH_SECRET | 必須 | 必須 | セッション暗号化キー |
AUTH_GITHUB_ID | 必須 | 必須 | GitHub OAuth Client ID |
AUTH_GITHUB_SECRET | 必須 | 必須 | GitHub OAuth Client Secret |
AUTH_URL | 不要 | 必須 | アプリケーションのベースURL |
AUTH_TRUST_HOST | 不要 | 必須 | ホストを信頼する設定 |
.env.local の例
なぜこの問題が起きるのか
- 開発環境 : Next.js の開発サーバーがリクエストヘッダーから正確なホスト情報を取得できる
- 本番環境 : Docker コンテナ内では
0.0.0.0:3000として起動するため、外部からアクセスする際の実際のURLがわからない - OAuth の仕組み : GitHub は登録された
redirect_uriと完全一致するURLにのみリダイレクトを許可する
トラブルシューティング
エラー: “redirect_uri is not associated with this application”
原因 : AUTH_URL が未設定、または GitHub OAuth App の Callback URL と一致しない
解決策 :
AUTH_URLを正しく設定- GitHub OAuth App の「Authorization callback URL」に
{AUTH_URL}/api/auth/callback/githubを設定
エラー: “UntrustedHost: Host must be trusted”
原因 : AUTH_TRUST_HOST が未設定
解決策 : 環境変数に AUTH_TRUST_HOST=true を追加
参考リンク
作成日: 2026-01-27