Я не могу получить доступ к NEXTAUTH_URL, так как я не могу получить доступ к нему с помощью NEXT_PUBLIC

#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 быть определен при сборке при компиляции для производства, или я могу оставить его неопределенным при сборке и установить его только во время выполнения?