概要
Next Auth (Auth.js v5) を使用したアプリケーションを Docker コンテナや本番環境にデプロイする際、AUTH_URL 環境変数を設定しないと GitHub OAuth 認証で以下のエラーが発生します:
Be careful!
The redirect_uri is not associated with this application.
開発環境 vs 本番環境
開発環境(npm run dev)
開発環境では Next.js が自動的にホスト情報を検出するため、AUTH_URL の設定は不要 です。
# これだけで動作する
npm run dev
本番環境(Docker / npm run build && npm start)
本番環境では Next Auth がホスト情報を自動検出できないため、AUTH_URL の設定が必須 です。
# .env.local または環境変数に追加
AUTH_URL=http://localhost:3000 # または https://your-domain.com
AUTH_TRUST_HOST=true
Docker での設定例
docker run の場合
docker run -d --name myapp -p 3000:3000 \
--env-file .env.local \
-e AUTH_TRUST_HOST=true \
myapp:latest
docker-compose.yml の場合
services:
app:
image: myapp:latest
ports:
- "3000:3000"
environment:
- AUTH_URL=https://your-domain.com
- AUTH_TRUST_HOST=true
env_file:
- .env.local
必要な環境変数一覧
| 変数名 | 開発環境 | 本番環境 | 説明 |
|---|---|---|---|
AUTH_SECRET | 必須 | 必須 | セッション暗号化キー |
AUTH_GITHUB_ID | 必須 | 必須 | GitHub OAuth Client ID |
AUTH_GITHUB_SECRET | 必須 | 必須 | GitHub OAuth Client Secret |
AUTH_URL | 不要 | 必須 | アプリケーションのベースURL |
AUTH_TRUST_HOST | 不要 | 必須 | ホストを信頼する設定 |
.env.local の例
# NextAuth.js Configuration
AUTH_SECRET=your-secret-key-here
# GitHub OAuth App Credentials
AUTH_GITHUB_ID=your-client-id
AUTH_GITHUB_SECRET=your-client-secret
# Production only (Docker / deployed environments)
AUTH_URL=http://localhost:3000
なぜこの問題が起きるのか
- 開発環境 : 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