Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Implementar logs de segurança

Desafio feito:

function verificaTokenJWT(...role: Role[]) {
  return async (req, res, next): Promise<any> => {
    if (!req.headers.authorization) { throw new AppError('Nenhum token informado.', Status.FORBIDDEN) }

const tokenString: string[] = req.headers.authorization.split(' ')
const token = tokenString[1]

// Nenhuma token informado
if (!token) {
  logger.error('Nenhum token informado')
  throw new AppError('Nenhum token informado.', Status.FORBIDDEN)
}
// Verifica se o token é válido
await access.verifica(token)

// Verifica se o token é válido
jwt.verify(token, process.env.SECRET_JWT, function (err, decoded) {
  if (err) {
    logger.error('Falha ao autenticar o token. Token expirou')
    throw new AppError('Falha ao autenticar o token. Token expirou', Status.FORBIDDEN)
  }

  if (role.length > 0 && !role.includes(decoded.role)) {
    logger.error('Não autorizado')
    throw new AppError('Não autorizado', Status.FORBIDDEN)
  }

  req.userId = decoded.id
  req.userRole = decoded.role
  next()
})
  }
}
2 respostas

Oii Bianca, tudo bem?

Parabéns por completar o desafio de implementar logs de segurança. Seu código tá no caminho certo, parabéns por praticar!

Continue firme nos estudos.

Um abraço.

solução!

Obrigada!