Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

258
Visualizações
Atascado en JWT verificar (con Redis)

Estoy usando Node.js más un paquete llamado jwt-redis para crear y verificar tokens de autenticación en mi API, de esta manera puedo destruirlos de redis db y cerrar sesión.

Ya logré la primera parte, la creación de tokens a través del método jwtr.sign(). El token se crea con éxito a partir de una carga útil y un secreto y luego se incluye en el cuerpo de la respuesta, así como una nueva clave en redis.

Ahora, estoy tratando de implementar una función para autenticar el token, que principalmente obtiene el encabezado de autorización de las solicitudes (se imprime correctamente en la consola), conecta el cliente redis (aparentemente también está bien) y finalmente intenta verificarlo.

Mi código es el siguiente:

 async function authenticateToken(req, res, next) { // verify if user already exists const authHeader = req.header('Authorization') // console.log('autheader', authHeader) const token = authHeader && authHeader.split(' ')[1] //returns or undenifed or the token if (token == null) return res.status(401).json({ Error: 'Usuario no registrado' }) console.log('token:' + token) const redis = require('redis'); const JWTR = require('jwt-redis').default; //ES6 import JWTR from 'jwt-redis'; const redisClient = redis.createClient(); const jwtr = new JWTR(redisClient) await redisClient.connect().then(function() { console.log("Redis plugged in.") }) jwtr.verify(token, process.env.ACCESS_TOKEN_SECRET, function(err, user) { if(err) return res.status(401).json({ Error: 'Usuario no registrado' }) console.log('user'+user) req.USER = user next() }) }

Sin embargo, como se dijo, se atasca en jwtr.verify(). La consola imprime tanto el token como el mensaje "Redis conectado", pero no sucede nada más. La aplicación sigue ejecutándose y el botón de la llamada del cartero sigue siendo "Enviando" hasta que obligo a detener el nodo.

Como ese método devuelve una promesa, lo intenté con ambos then y await sin éxito.

¿Alguna idea de lo que está pasando aquí, chicos?

Realmente apreciaré tu ayuda :)

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

de la documentación

jwtr.verify(token, secretOrPublicKey, [opciones]): Promesa

usted está manejando eso con devolución de llamada

entonces creo que tienes que modificar tu código de esta manera

 jwtr.verify(token, process.env.ACCESS_TOKEN_SECRET).then(user => { console.log('user'+user) req.USER = user next() }, err => { res.status(401).json({ Error: 'Usuario no registrado' }) })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda