Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

120
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!