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

259
Vistas
Express js corrige la colisión de autenticación de usuario

Estoy creando una aplicación de express js, usa firebase admin para la autenticación y también estoy usando jwt personalizado para el reconocimiento de usuarios y mongodb para la base de datos.

No conozco el término correcto, pero por lo general rara vez ocurre, por ejemplo, el usuario A está editando su cuenta, pero por alguna razón se edita la cuenta del usuario B.

He creado un middleware de autenticación de usuario.

 import { Request, Response, NextFunction } from "express"; import JSONRESPONSE from "../utils/JSONReponse"; import jwt from "jsonwebtoken" import { User } from "../models/User"; export async function AuthMiddleware(req: Request, res: Response, next: NextFunction) { const JSONResponse = new JSONRESPONSE(res); try { const session = req.cookies.session; if (!session) return JSONResponse.notAuthorized(); const decoded = < any > jwt.decode(session); const uid = decoded.user_id if (!uid) return JSONResponse.notAuthorized(); const user = await User.findOne({ uid }) if (!user) return JSONResponse.notAuthorized(); req.app.locals.currentUser = user; req.app.locals.uid = uid; next() } catch (err) { console.log(err); JSONResponse.notAuthorized(); } }

Aquí están mis rutas principales:

 app.use("/api/auth", AuthRoutes) app.use("/api/user", AuthMiddleware, UserRoutes) app.use("/api/date", AuthMiddleware, DateRoutes) app.use("/api/chat", AuthMiddleware, ChatRoutes)

¿Cómo soluciono este problema? No estoy seguro de qué está causando este problema raro.

ACTUALIZAR:

https://stackoverflow.com/a/35111195/14786214

después de ver esta respuesta. Creo que el problema fue req.app.locals ya que app.locals almacena la variable durante todo el ciclo de vida de la aplicación, mientras que res.locals almacena solo para el ciclo de vida de la solicitud.

about 4 years ago · Juan Pablo Isaza
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