Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

127
Vistas
Cómo desproteger la ruta en el próximo middleware js

entonces quiero desproteger la página de inicio de sesión y aquí está mi estructura de carpetas:

ingrese la descripción de la imagen aquí

aquí está mi middleware:

 import { NextResponse, NextRequest } from "next/server"; export async function middleware(req, ev) { if (req.pathname === "login") { return NextResponse.next(); } const token = req.cookies.token; if (!token) { return NextResponse.redirect("/login"); } return NextResponse.next(); }

Entonces, ¿cómo hago para que el middleware no se aplique a login.js?

Editar : ahora devuelve [webpack.cache.PackFileCacheStrategy] Caching failed for pack: Error: Unable to snapshot resolve dependencies

el código para este proyecto está aquí

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

así que resolví el error. No estaba obteniendo el nombre de ruta de req.nextUrl y aquí está el código correcto:

 import { NextResponse, NextRequest } from "next/server"; export async function middleware(req, ev) { const { pathname } = req.nextUrl; const token = req.cookies.token; if (pathname == "/login" && !token) { return NextResponse.next(); } if (!token) { return NextResponse.redirect("/login"); } return NextResponse.next(); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede verificar si la request es para la página de /login en sí misma y salir temprano.

Consulte todas las propiedades en NextRequest que están disponibles.

 import { NextResponse, NextRequest } from "next/server"; export async function middleware(req, ev) { if( req.pathname === 'login'){ return NextResponse.next(); } const token = req.cookies.token; if (!token) { return NextResponse.redirect("/login"); } return NextResponse.next(); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

La respuesta aceptada me ayudó mucho. Estoy agregando mi solución porque tuve que hacer algunas modificaciones.

Usé el archivo [...nextauth].js con jwt y devoluciones de llamada de session y cuando usé la solución de la respuesta aceptada, estaba obteniendo el ciclo ERR_TOO_MANY_REQUESTS . Mi solución fue agregar algunas URL más:

 import { NextResponse } from "next/server"; import { getToken } from 'next-auth/jwt'; export default async function middleware(req, ev) { const { pathname } = req.nextUrl; const token = await getToken({ req, secret: process.env.JWT_SECRET }); if ((pathname == "/api/auth/signin" || pathname == "/favicon.ico" || pathname == "/api/auth/callback/credentials") && !token) { return NextResponse.next(); } if (!token) { return NextResponse.rewrite(new URL('/api/auth/signin', req.url)); } return NextResponse.next(); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda