Gerador OAuth 2.0 PKCE
Rede
PKCE (Proof Key for Code Exchange, RFC 7636) é o fluxo OAuth 2.0 moderno recomendado para TODOS os clientes públicos — SPAs, mobile e apps desktop que não podem guardar client_secret com segurança. Esta ferramenta gera um `code_verifier` criptograficamente aleatório (43-128 caracteres do alfabeto URI não reservado), deriva o `code_challenge` (SHA-256 codificado em base64url para S256, ou o próprio verifier para `plain`) e monta a URL completa com `state` para proteção CSRF. O `curl` exemplo mostra a troca de token com todos os parâmetros prontos — apenas cole o `code` do callback.
Como usar
- Defina o tamanho do verifier (64 é bom default; mínimo 43, máximo 128).
- Escolha S256 (sempre preferido) ou plain (apenas servidores legacy).
- Preencha `client_id`, `redirect_uri`, `scope` e endpoints OAuth.
- Envie o usuário para a URL de autorização. Quando voltar com `?code=...`, execute o curl com esse código para obter tokens.
Perguntas frequentes
- S256 vs plain, qual usar?
- Sempre S256. Plain envia o verifier como challenge — sem proteção se interceptarem a requisição. S256 envia apenas SHA-256 do verifier, então o verifier nunca aparece no passo 1. RFC 7636 diz que clientes devem rejeitar plain se S256 estiver disponível.
- Por que esses caracteres no verifier?
- RFC 7636 especifica o alfabeto como `[A-Z][a-z][0-9]-._~` — caracteres URI não reservados da RFC 3986. Seguro em URLs, headers e bodies sem escape.
- Para que serve `state`?
- String aleatória opaca que o cliente gera por requisição e valida no callback. Previne CSRF: se um atacante enganar o usuário a clicar em redirect malicioso, o `state` não vai bater com o salvo e a resposta é rejeitada. Use sempre.
- Onde roda?
- Inteiramente no seu navegador. Verifier vem de `crypto.getRandomValues()` e SHA-256 de `crypto.subtle.digest()` — ambas Web Crypto API. Nada é transmitido.
Ferramentas relacionadas
Inspetor de Endereço IP
Digite um endereço IPv4 ou IPv6 e veja sua classe, scope (privado / público / loopback / link-local), valor decimal, binário, notação reverse-DNS e CIDR /32.
Referência de Portas
Cheat sheet pesquisável de ~60 portas TCP / UDP padrão — de 22 (SSH) e 80 (HTTP) até 6379 (Redis) e 27017 (MongoDB).
Referência de Registros DNS
Cheat sheet pesquisável de tipos de registro DNS — A, AAAA, CNAME, MX, TXT, NS, SOA, PTR, SRV, CAA, DNSSEC, SVCB / HTTPS — com exemplos.
Calculadora de Subrede (IPv4 / CIDR)
Parseia CIDR IPv4 em endereço de rede, broadcast, netmask, wildcard, faixa de hosts e classe. Mostra desdobramento binário e status privado/público.
Parser de User Agent
Parseia string User-Agent em navegador, engine, OS, dispositivo e CPU. Detecta 20+ bots incluindo GPTBot, ClaudeBot, PerplexityBot.
Referência de Códigos de Status HTTP
Lista pesquisável de todos os códigos HTTP (1xx-5xx) com resumo, RFC, quando usar e armadilhas comuns.