proxy.ts 677 B

12345678910111213141516171819202122232425
  1. import { NextResponse } from "next/server";
  2. import type { NextRequest } from "next/server";
  3. export function proxy(request: NextRequest) {
  4. const token = request.cookies.get("auth_token")?.value;
  5. const isLoginPage = request.nextUrl.pathname === "/login";
  6. if (!token && !isLoginPage) {
  7. const loginUrl = new URL("/login", request.url);
  8. return NextResponse.redirect(loginUrl);
  9. }
  10. if (token && isLoginPage) {
  11. const dashboardUrl = new URL("/", request.url);
  12. return NextResponse.redirect(dashboardUrl);
  13. }
  14. return NextResponse.next();
  15. }
  16. export const config = {
  17. matcher: [
  18. "/((?!api|_next/static|_next/image|favicon.ico|images|banner).*)",
  19. ],
  20. };