Я использую 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
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Я не могу быть перенаправлен на мою страницу обновления в Spring Boot 3 с помощью Thymeleaf.
Anonymous » » в форуме JAVA - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-