1
resposta

[Dúvida] Recuperar dados do token dentro da requisição

Conseguimos autenticar o usuário e permitir o acesso ao GET do AcessoController. OK.

Mas, seria possível recuperar os dados utilizados na autenticação dentro da requisição?

Por exemplo, o GET retorna apenas um "Acesso permitido", se eu quisesse utilizar dados do usuário e retornar algumas informações dele como nome e data de nascimento, seria possível fazer isso com os dados do token?

1 resposta

Olá, José

Sim, é possível recuperar os dados utilizados na autenticação dentro da requisição utilizando os dados do token. No caso do JWT (JSON Web Token), as informações são codificadas no próprio token e podem ser acessadas através do seu payload.

No exemplo que você mencionou, se você quiser retornar informações do usuário como nome e data de nascimento, você pode incluir esses dados no payload do token durante o processo de autenticação. Em seguida, no seu controlador, você pode acessar essas informações através do objeto User do HttpContext.

Por exemplo, suponha que você tenha incluído o nome e a data de nascimento do usuário no payload do token com as chaves name e birthdate. No seu controlador, você pode acessar essas informações da seguinte forma:

[HttpGet]
public IActionResult GetUserInfo()
{
    var name = User.Claims.FirstOrDefault(c => c.Type == "name")?.Value;
    var birthdate = User.Claims.FirstOrDefault(c => c.Type == "birthdate")?.Value;

    // Faça o que precisar com as informações do usuário

    return Ok("Acesso permitido");
}

Dessa forma, você pode utilizar os dados do usuário e retornar as informações desejadas dentro da requisição.

Espero ter ajudado e bons estudos!