1
resposta

Claims

Do jeito que foi implementado, dentro do token, no Subject só temos o id do Usuario logado, como faço para enviar um json com o objeto completo, por exemplo um UserDTO, Exemplo :

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E como faço depois, para validar esse token, pegar apenas o id do subject?

1 resposta

Oi Victor,

Você pode adicionar quantas informações adicionaios desejar dentro do token, bastando utilizar o método claim() e passar a chave e o valor:

Jwts.builder()
    .setIssuer("API do Fórum da Alura")
    .setSubject(logado.getId().toString())
    .claim("nome", logado.getNome())
    .claim("email", logado.getEmail())
    .setIssuedAt(hoje)
    .setExpiration(dataExpiracao)
    .signWith(SignatureAlgorithm.HS256, secret)
    .compact();

Mas você não pode passar um objeto java, pois os valores passados precisam ser tipos primitivos(int, long, etc) ou uma String ou um array.