Как решить: Ошибка конфигурации NextAuth.js (Auth.js v5) на Vercel. Ошибка 500 /api/auth/error?error=Configuration?

Ссылка скопирована
1 ответ

Сейчас ситуация такая: столкнулся с нерешаемой проблемой при деплое Next.js приложения на Vercel с использованием Auth.js v5 и Prisma. Локально все работает идеально, но на Vercel аутентификация через GitHub падает с ошибкой конфигурации.

Суть проблемы:

По вводным: после успешной сборки и деплоя, при попытке входа через GitHub, происходит редирект на страницу `/api/auth/error?error=Configuration` со статусом 500 (Internal Server Error).

Стек технологий:

  • По вводным: next.js 14.2.3 (App Router)
  • По вводным: auth.js v5 (next-auth@5.0.0-beta.18)
  • Prisma 5.14.0
  • По вводным: база данных: PostgreSQL на Supabase
  • По вводным: провайдер аутентификации: GitHub
  • Хостинг: Vercel

По вводным: что я уже проверил (чтобы сэкономить ваше время):

1.По вводным: переменные окружения на Vercel:

  • Сейчас ситуация такая: `DATABASE_URL` настроена для пула соединений (`...:5432/postgres?pgbouncer=true`). Пароль не содержит спецсимволов.
  • По вводным: `GITHUB_CLIENT_ID` и `GITHUB_CLIENT_SECRET` скопированы верно.
  • По вводным: `AUTH_SECRET` сгенерирован и идентичен локальному.
  • По вводным: `NEXTAUTH_URL` установлен в `https://<мой-домен>.vercel.app`.

2.По вводным: настройки GitHub OAuth App:

3.Конфигурация проекта:

  • По вводным: команда сборки в `package.json`: `"build": "prisma generate && next build"`.
  • По вводным: схема Prisma и модели соответствуют требованиям `PrismaAdapter`.
  • По вводным: кэш сборки на Vercel был полностью очищен путем пересоздания проекта.

Ссылка на репозиторий:

По вводным: вот ссылка на мой публичный репозиторий на GitHub. В нем находится весь актуальный код, который я пытаюсь задеплоить:
https://github.com/blesswrld/linkhub-app

По вводным: ключевые файлы конфигурации:

  • По вводным: `lib/auth.ts` (конфигурация Auth.js)
  • `prisma/schema.prisma`
  • `package.json`

Сейчас ситуация такая: я уже несколько часов бьюсь над этой проблемой и перепроверял все возможные варианты, включая откат версий зависимостей. Логи Vercel не дают никакой дополнительной информации, кроме ошибки 500.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Елена Вебер Ответ

Ошибка /api/auth/error?error=Configuration в Auth.js v5 на Vercel почти всегда означает не “сломался GitHub provider”, а то, что в production не совпала конфигурация окружения: AUTH_SECRET, AUTH_URL, OAuth callback URL, переменные GitHub или доступ к базе. Локально работает, потому что .env.local полный, а на Vercel часто не хватает одной переменной или она задана не для того Environment.

Проверьте минимум:

  • AUTH_SECRET задан в Vercel для Production.
  • AUTH_URL равен публичному домену, например https://example.vercel.app или вашему домену.
  • GITHUB_ID и GITHUB_SECRET заданы без лишних пробелов.
  • В GitHub OAuth App callback URL указан https://домен/api/auth/callback/github.
  • DATABASE_URL доступен из Vercel и не является локальным адресом.
AUTH_SECRET=long-random-secret
AUTH_URL=https://your-domain.vercel.app
GITHUB_ID=...
GITHUB_SECRET=...
DATABASE_URL=postgresql://...

AUTH_SECRET=long-random-secret AUTH_URL=https://your-domain.vercel.app GITHUB_ID=... GITHUB_SECRET=... DATABASE_URL=postgresql://...

Для Auth.js v5 важно, чтобы конфиг был на стороне server runtime. Если используете PrismaAdapter, проверьте, что Prisma Client генерируется при сборке. На Vercel обычно добавляют postinstall или build script.

{
  "scripts": {
    "postinstall": "prisma generate",
    "build": "prisma generate &amp;&amp; next build"
  }
}

{ "scripts": { "postinstall": "prisma generate", "build": "prisma generate &amp;&amp; next build" } }

Еще одна частая причина: AUTH_SECRET сгенерирован локально, но не добавлен на Vercel. Сгенерировать можно так:

openssl rand -base64 32

openssl rand -base64 32

Если Supabase используется как PostgreSQL, убедитесь, что строка подключения подходит для serverless. Иногда обычный connection string работает локально, но на Vercel лучше использовать pooler connection string Supabase. Также проверьте SSL-параметры, если они требуются.

Для диагностики откройте Vercel Logs именно в момент клика по GitHub login. Там будет настоящая причина: missing secret, invalid callback URL, database connection failed, Prisma schema mismatch и т.д. Со стороны браузера вы видите только обобщенный Configuration. Начинайте с env-переменных и OAuth callback: в 80% случаев проблема именно там.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно