1001Ferramentas
🔐Dev

OAuth2 Authorization URL Builder

Monta URL de autorização OAuth 2.0 com response_type, client_id, redirect_uri, scope, state.

URL

Montando a URL de autorização sem erro de digitação

A primeira etapa do OAuth 2.0 é um redirecionamento para o endpoint de autorização do provedor com meia dúzia de parâmetros na query string. Errar um caractere do redirect_uri ou esquecer o state costuma render uma tela de erro genérica, sem pista do que faltou. Aqui você preenche endpoint, response_type, client_id, redirect_uri, scope e state, e a URL sai montada e codificada.

A codificação segue o formato de formulário, então espaço vira sinal de mais: openid profile email sai como scope=openid+profile+email. É válido, o provedor decodifica igual a %20. Se o endpoint que você colar já tiver uma query string, os parâmetros são anexados com e comercial em vez de interrogação. Os seis campos sempre entram na URL, mesmo vazios, então apague o que não usar antes de colar no navegador.

O que sai daqui é o mínimo do RFC 6749. Faltam dois parâmetros que hoje são quase obrigatórios: code_challenge e code_challenge_method, do PKCE, que o OAuth 2.1 pede até em cliente confidencial, e nonce, que o OpenID Connect exige quando o response_type inclui id_token. Acrescente à mão. O fluxo implícito, response_type=token, está desaconselhado faz anos. O state precisa ser aleatório a cada requisição e conferido na volta. Nada é enviado, tudo roda no navegador.

Perguntas frequentes

Preciso de PKCE mesmo tendo client_secret?
Sim, o OAuth 2.1 recomenda PKCE para todos os clientes que usam o fluxo de código. Como esta página não gera code_challenge nem code_challenge_method, adicione os dois manualmente na URL.
O redirect_uri precisa bater exatamente com o cadastrado?
Sim, comparação literal: esquema, host, porta, caminho e até a barra final. É a causa número um de erro invalid_redirect_uri na primeira integração.
Funciona com qualquer provedor?
Funciona com qualquer um que siga o OAuth 2.0, bastando trocar o endpoint. Google, GitHub, Auth0 e Keycloak usam os mesmos nomes de parâmetro, mas alguns pedem extras como access_type ou audience.

Ferramentas Relacionadas