Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

erro ao chamar a função adiciona- rota logout

Mensagem de erro: "erro": "blacklist.adiciona is not a function"

manipula-blacklist.js

const blacklist = require('./blacklist');

const { promisify } = require('util');
const existsAsync = promisify(blacklist.exists).bind(blacklist);
const setAsync = promisify(blacklist.exists).bind(blacklist);

const jwt = require('jsonwebtoken');
const { createHash } = require('crypto');

function geraTokenHash(token) {
  return createHash('sha256')
    .update(token)
    .digest('hex');
}

module.exports = {
  adiciona: async token => {
    const dataExpiracao = jwt.decode(token).exp;
    const tokenHash = geraTokenHash(token);
    await setAsync(tokenHash, '');
    blacklist.expireat(tokenHash, dataExpiracao);
  },
  contemToken: async token => {
    const tokenHash = geraTokenHash(token);
    const resultado = await existsAsync(tokenHash);
    return resultado === 1;
  }
};

usuarios-controlador.js

module.exports = {

... logout: async (req, res) => { try { const token = req.token; await blacklist.adiciona(token); res.status(204).send(); } catch (erro) { res.status(500).json({ erro: erro.message }); }

}, ...

2 respostas
solução

Verifique o seu import. Em usuarios-controlador.js blacklist é importado como require('../../redis/manipula-blacklist')

Muito OBRIGADO Luiz!!! O problema era realmente no import. Estava faltando o "require".

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software