Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] Token nâo existe na resposta

Na resposta dada como correta, a variável token passada como argumento para o jwtService.verifyAsync não existe, o que geraria em um erro.

Código da resposta:

async canActivate(contexto: ExecutionContext): boolean {
  const requisicao = contexto.switchToHttp().getRequest();
  try {
    const payload: UsuarioPayload = await this.jwtService.verifyAsync(token);
    requisicao.usuario = payload;
  } catch (error) {
    throw new UnauthorizedException('JWT inválido');
  }
  return true;
}

Acho que o correto seria:

async canActivate(contexto: ExecutionContext): boolean {
  const requisicao = contexto.switchToHttp().getRequest();
  const token = this.extrairTokenDoCabecalho(requisicao);
  if (!token) {
    throw new UnauthorizedException('Erro de autenticação');
  }
  try {
    const payload: UsuarioPayload = await this.jwtService.verifyAsync(token);
    requisicao.usuario = payload;
  } catch (error) {
    throw new UnauthorizedException('JWT inválido');
  }
  return true;
}
1 resposta
solução!

Olá, Levi! Tudo bem?

Você está certo em sua observação.

Agradeço por você notar e apontado esse detalhe. Isso mostra o quanto você está atento e comprometido com seu aprendizado. Continue assim! Agora, estarei entrando em contato com o pessoal responsável pelo conteúdo para ser feito o ajuste na atividade.

Bons estudos!