Я использую Nextjs версию 14.2.4. У меня есть страница для входа, где после проверки учетных данных пользователя и функция получает ответ успеха, файл cookie создается с использованием данных пользователя из ответа. Файл промежуточного программного обеспечения, который я запускаю, проверяет (на всех страницах) для cookie и позволяет пользователю продолжать на запрошенную страницу, либо перенаправлять их на страницу входа в систему. Все это отлично работает локально, но в производстве кажется, что файл промежуточного программного обеспечения не работает часть времени. Чтобы дополнительно объяснить, пользователь впускается на сайт, а затем после некоторой навигации или даже обновления домашней страницы, пользователь перенаправляется на страницу входа в систему, когда ясно, что присутствует требуемый файл cookie. Есть идеи, что может это вызвать? Или идеи о том, как это устранить? Я не вижу никаких ошибок на вкладке сети или иным образом и вижу файл cookie в запросе страницы. < /P>
Очень странное поведение. Есть даже времена, когда кажется, что все работает, но я проверю снова через час или около того, и я вернусь к перенаправлению. < /P>
Я использую каталог приложений И я не уверен, что есть какая -либо работа вокруг, которые не приведут к мерцанию, когда пользователь переходит на страницу. < /p>
Пример каталог < /p>
|-site
|--app
|---login
|----page.js
|---page.js
|--src
|--middleware.js
< /code>
Пример промежуточного программного файла -< /p>
import { NextResponse } from "next/server";
export async function middleware(req) {
const isAuthenticated = await req.cookies.has("auth");
const url = req.nextUrl.pathname;
if (url != "/login") {
if (!isAuthenticated) {
// Redirect to the login page
console.log("User not authenticated!!!");
return NextResponse.redirect("http://localhost:3000/login"); //of course this is pointing to the actual site
}
}
return NextResponse.next();
}
export const config = {
matcher: ['/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)'],
};
< /code>
Я пытался использовать HOC вместо промежуточного программного файла. Это работает, но, конечно, я получаю мерцание. Я также переписывал свой промежуточный файл, чтобы использовать Nextresponse.rewrite против nextresponse.redirect, но это, похоже, не соответствовало моим потребностям. Сначала у меня были все страницы в моем массиве маттера, но затем я перешел на пустой массив, так как это необходимо работать на всех четырех страницах сайта, и это, конечно, не имело никакого значения.
Подробнее здесь: https://stackoverflow.com/questions/794 ... -logged-in
Пользователь перенаправлен на страницу входа после входа в систему ⇐ Javascript
Форум по Javascript
-
Anonymous
1738281722
Anonymous
Я использую Nextjs версию 14.2.4. У меня есть страница для входа, где после проверки учетных данных пользователя и функция получает ответ успеха, файл cookie создается с использованием данных пользователя из ответа. Файл промежуточного программного обеспечения, который я запускаю, проверяет (на всех страницах) для cookie и позволяет пользователю продолжать на запрошенную страницу, либо перенаправлять их на страницу входа в систему. Все это отлично работает локально, но в производстве кажется, что файл промежуточного программного обеспечения не работает часть времени. Чтобы дополнительно объяснить, пользователь впускается на сайт, а затем после некоторой навигации или даже обновления домашней страницы, пользователь перенаправляется на страницу входа в систему, когда ясно, что присутствует требуемый файл cookie. Есть идеи, что может это вызвать? Или идеи о том, как это устранить? Я не вижу никаких ошибок на вкладке сети или иным образом и вижу файл cookie в запросе страницы. < /P>
Очень странное поведение. Есть даже времена, когда кажется, что все работает, но я проверю снова через час или около того, и я вернусь к перенаправлению. < /P>
Я использую каталог приложений И я не уверен, что есть какая -либо работа вокруг, которые не приведут к мерцанию, когда пользователь переходит на страницу. < /p>
Пример каталог < /p>
|-site
|--app
|---login
|----page.js
|---page.js
|--src
|--middleware.js
< /code>
Пример промежуточного программного файла -< /p>
import { NextResponse } from "next/server";
export async function middleware(req) {
const isAuthenticated = await req.cookies.has("auth");
const url = req.nextUrl.pathname;
if (url != "/login") {
if (!isAuthenticated) {
// Redirect to the login page
console.log("User not authenticated!!!");
return NextResponse.redirect("http://localhost:3000/login"); //of course this is pointing to the actual site
}
}
return NextResponse.next();
}
export const config = {
matcher: ['/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)'],
};
< /code>
Я пытался использовать HOC вместо промежуточного программного файла. Это работает, но, конечно, я получаю мерцание. Я также переписывал свой промежуточный файл, чтобы использовать Nextresponse.rewrite против nextresponse.redirect, но это, похоже, не соответствовало моим потребностям. Сначала у меня были все страницы в моем массиве маттера, но затем я перешел на пустой массив, так как это необходимо работать на всех четырех страницах сайта, и это, конечно, не имело никакого значения.
Подробнее здесь: [url]https://stackoverflow.com/questions/79401520/user-redirected-to-login-page-after-having-logged-in[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия