Como usar
- Clique em Gerar para um novo code_verifier ou cole o seu.
- O code_challenge é calculado como BASE64URL(SHA-256(code_verifier)).
- Envie code_challenge e code_challenge_method=S256 na requisição de autorização.
- Envie o code_verifier na requisição de token.
PKCE (Proof Key for Code Exchange, RFC 7636) protege o fluxo de código de autorização do OAuth 2.0. Foi criado para clientes públicos, como apps móveis, apps desktop e aplicações de página única, que não conseguem guardar um segredo de cliente. Antes de redirecionar o usuário, o cliente cria um segredo de uso único, o code_verifier, e envia apenas o hash dele, o code_challenge. Na troca do código por tokens, envia o verifier original e o servidor confere se os dois batem; quem interceptar só o código não consegue usá-lo.
Este gerador pega 32 bytes aleatórios de crypto.getRandomValues do navegador e os codifica em base64url sem preenchimento, o que resulta em um verifier de 43 caracteres. O code_challenge é o SHA-256 do verifier, também em base64url sem preenchimento, e tem sempre 43 caracteres. Só o método S256 é oferecido: a RFC 7636 também define plain, mas exige S256 quando o cliente consegue calcular SHA-256. Use para depurar uma integração de login, comparar a saída da sua biblioteca ou montar requisições de teste à mão.
Um verifier colado é processado como está, sem validação de formato: confira se ele tem de 43 a 128 caracteres entre A–Z, a–z, 0–9, “-”, “.”, “_” e “~”. Gere um verifier novo para cada requisição de autorização. Os dois valores são calculados nesta página com a Web Crypto API e não são enviados a lugar nenhum.