Authorization Code com PKCE
Sumário
Fluxo
A autenticação Authorization Code com PKCE para a Spotify API é um processo seguro de fluxo OAuth 2.0 que envolve a geração de um code_verifier (uma string secreta e aleatória) e um code_challenge (o hash SHA-256 do code_verifier).
O code_challenge é enviado ao Spotify na primeira etapa de autorização, e na etapa final, o code_verifier original é enviado junto com o código de autorização para trocar por um access token. Este fluxo é essencial para aplicativos, especialmente mobile e desktop, onde é inseguro armazenar um segredo no cliente, pois o PKCE protege contra ataques de injeção de código de autorização.
Passo a passo da autenticação
- Crie uma string aleatória e criptograficamente forte, com 43 a 128 caracteres, usando caracteres A-Z, a-z, 0-9, e ~, ., _, -. Guarde este
code_verifierem segurança no lado do cliente. - Calcule o
code_challenge: Faça o hash docode_verifierusando o métodoSHA-256e codifique o resultado embase64url. Este será ocode_challenge. - Inicie a autorização: Redirecione o usuário para o endpoint de autorização do Spotify, incluindo o
code_challenge,client_id,redirect_uriescope(se necessário). - Obtenha o
authorization_code: Após o usuário aprovar a solicitação, o Spotify o redirecionará para sua redirect_uri com umauthorization_code. - Troque por tokens: Envie uma requisição para o endpoint de token do Spotify, incluindo o
authorization_code, ocode_verifieroriginal e oclient_idpara obter oaccess tokene orefresh token. - Use o
access token: Use oaccess tokenobtido para fazer chamadas à API da Spotify.
Resumo da segurança
- PKCE protege contra ataques de interceptação: Se um atacante interceptar o
authorization_code, ele não conseguirá usá-lo para obter umaccess tokenporque não terá ocode_verifieroriginal. code_verifieré confidencial: A string original deve permanecer privada no cliente e só ser usada na troca do código pelo token.code_challengeé público: Ele pode ser enviado através de canais públicos (como a URL) sem comprometer a segurança.