#reactjs #next.js #next-auth
Вопрос:
В NextJS вам нужно добавить NEXT_PUBLIC_
переменные env, чтобы сделать их доступными для браузера, но «next-auth» принимает только жестко закодированные переменные , например NEXTAUTH_URL
, есть ли способ решить эту проблему?
Ответ №1:
Переменные среды с префиксом NEXT_PUBLIC_
будут встроены в пакет приложений. NEXTAUTH_URL
не используется в комплекте. Он используется маршрутами API для обработки URL-адреса перенаправления. Это означает, что вы должны определить его в Vercel.
Комментарии:
1. я запускаю приложение на локальном хосте, я его не размещал, поэтому я не могу добавлять переменные env с помощью панели мониторинга vercel
2. Вы определяете их в
.env.local
файле, как показано здесь nextjs.org/docs/basic-features/…3. Я это сделал, я даже пытался с next.config.js
module export
amp; перезапуск после внесения изменений, но все равно продолжайте получать эту ошибкуwarnings#nextauth_url NEXTAUTH_URL environment variable not set
4. Обновление, исправлена проблема, путем возврата к использованию
.env.local
вместоnext.config.js
. Несмотряnext.config.js
на то, что он работает с другими переменными env, он, похоже, не работаетNEXTAUTH_URL
. Проблема не была связана ни сNEXT_PUBLIC_
тем, ни с другим, так как я не добавлял егоNEXTAUTH_URL
, и приложение теперь работает, что имеет смысл, потому что на самом деле вам не нужно открыватьNEXTAUTH_URL
браузер5. @AndrewGillis должен
NEXTAUTH_URL
быть определен при сборке при компиляции для производства, или я могу оставить его неопределенным при сборке и установить его только во время выполнения?