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

[Dúvida] Sobre a criação do token

Olá

Vi que o instrutor implementou o seguinte código:

        response?.addHeader("Authorization", "Bearer $token")

Entendi que o argumento Authorization é como se fosse um identificador, mas o que seria o Bearer? Não consegui captar exatamente o que é.

Código completo:

class JWTLoginFilter(
    private val authManager: AuthenticationManager,
    private val jwtUtil: JWTUtil,
): UsernamePasswordAuthenticationFilter() {

    override fun attemptAuthentication(request: HttpServletRequest?, response: HttpServletResponse?): Authentication? {
        val (username, password) = ObjectMapper()
            .readValue(request?.inputStream, Credentials::class.java)
        val token = UsernamePasswordAuthenticationToken(username, password)
        return authManager.authenticate(token)
    }

    override fun successfulAuthentication(
        request: HttpServletRequest?,
        response: HttpServletResponse?,
        chain: FilterChain?,
        authResult: Authentication?
    ) {
        val username = (authResult?.principal as UserDetails).username
        val token = jwtUtil.generateToken(username)
        response?.addHeader("Authorization", "Bearer $token") // <---- aqui
    }

}
2 respostas
solução!

Oi, Juan! Tudo bem?

O termo "Bearer" faz parte do esquema de autenticação Bearer Token, que é um padrão de autenticação usado em APIs. Quando vemos "Bearer $token" no cabeçalho de autorização, isso significa que o token que segue a palavra "Bearer" é um token de acesso que o servidor pode usar para verificar se a requisição é feita por um usuário autenticado.

Em outras palavras, "Bearer" é uma palavra-chave que indica ao servidor que o que segue é um token de autenticação. Esse token é geralmente um JWT (JSON Web Token) que contém informações sobre o usuário e pode ser verificado pelo servidor para conceder ou negar acesso a recursos protegidos.

Por exemplo, quando um cliente faz uma requisição a uma API protegida, ele pode enviar o token no cabeçalho da requisição assim:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

O servidor então valida esse token para garantir que a requisição é feita por um usuário autenticado e que o token não foi alterado.

Espero ter ajudado!

Um forte abraço e bons estudos!

Consegui entender, muito obrigado Sarah!