Desenvolvimento OAuth

URL de autorização OAuthe análise de callback

Carregue o exemplo público para comparar a solicitação e o retorno antes de inserir seus próprios valores.

URL de autorização OAuth

Entradas da solicitação

Digite valores sem codificação. A URI cadastrada é preservada exatamente.

Resultado

Tudo é processado nesta aba. As entradas não são enviadas nem salvas.

Opções

response_type=code · fluxo de código de autorização

Guarde o verifier para a solicitação de token. Só o challenge entra na URL; o relatório exclui o verifier.

Um parâmetro key=value sem codificação por linha. Não repita campos reservados.

Digite valores ou carregue o exemplo.

Um detalhe no endereço de retorno pode interromper o login: uma porta diferente, uma barra final ou um sinal de mais convertido em espaço. Ao comparar a URL de autorização OAuth com a tabela decodificada, você consegue ver quais valores foram realmente montados para a solicitação.

Para investigar um teste já realizado, cole o retorno na visualização de callback e informe separadamente o state guardado naquela transação. Nomes repetidos continuam em linhas distintas. Um texto analisado corretamente não comprova que o código recebido ou a identidade sejam válidos.

Por que conferir a URL de autorização OAuth

O verifier fica separado da solicitação

A URL de autorização OAuth recebe somente o challenge S256 e o método. O verifier permanece no campo de entrada e pode ser copiado por um botão próprio para a futura solicitação de token. O relatório também exclui o verifier, evitando misturar o valor privado com os parâmetros enviados.

Cartões de parâmetros se juntam em uma barra de endereço, com a chave privada mantida ao lado.

Nenhum state repetido desaparece

Quando state aparece na consulta e no fragmento, as duas linhas mantêm a origem e a ordem. Mesmo valores iguais são tratados como ambíguos. Assim, um primeiro resultado que coincide não esconde outro parâmetro que não deveria estar ali.

Um callback é dividido em duas colunas que preservam linhas repetidas da mesma cor.

Mantenha a solicitação ligada ao retorno

01

Use a URI cadastrada sem transformações

Confira esquema, porta, caminho, barra final e consulta do URI de redirecionamento. Não codifique o endereço inteiro antes de inseri-lo. Parâmetros adicionais usam uma linha key=value sem codificação; um & dentro do valor continua sendo parte do conteúdo.

02

Gere os valores da transação conscientemente

O botão usa 32 bytes aleatórios independentes para state e verifier. Também substitui nonce quando scope contém openid. Revise os campos alterados antes de aplicar e guarde o verifier da mesma transação. Mudar um escopo não gera valores novos automaticamente.

03

Escolha quando atualizar o resultado

No modo automático, o cálculo ocorre 350 ms após a última alteração. Ao desativá-lo, use o botão de execução ou Ctrl/Cmd+Enter. Um resultado desatualizado não pode ser exportado. As visualizações preservam as entradas, mas o state esperado do callback é informado em um campo independente.

Confira a codificação e os valores enviados

Consultas aninhadas sem mistura

O redirect_uri completo é tratado como um único valor. Parâmetros que já existem no endpoint passam por decodificação estrita e são reconstruídos com os campos. O sinal + literal de um valor adicional vira %2B; espaços seguem a codificação de formulário.

S256 com os bytes originais

O verifier aceita de 43 a 128 caracteres permitidos. Não há remoção de espaços nem decodificação Base64 anterior ao hash. Desligar PKCE remove challenge e método da URL, mas preserva o verifier digitado para comparação ou uso posterior.

Somente uma etapa de decodificação

São aceitos URL completa, ?query, #fragment ou apenas a consulta. %252F vira %2F, e não uma barra. Nomes vazios, valores vazios e parâmetros repetidos mantêm sua ordem original, sem serem sobrescritos em um objeto.

Comparações com resultados explícitos

O parâmetro state pode estar ausente, vazio, repetido, sem comparação, igual ou diferente. Misturar código de autorização com error também gera um aviso. A tabela mostra 50 linhas por vez; o relatório exportado sempre contém todos os parâmetros da análise.

Formatos aceitos e limites

Apenas o fluxo de código
response_type permanece code. Não oferecemos implicit, hybrid ou PKCE plain. Neste formulário, nonce exige openid no scope. Sua verificação real pertence à validação do ID token realizada pela aplicação, não à leitura do callback.
Sintaxe válida não confirma o cadastro
O endpoint de autorização exige HTTPS. HTTP é permitido em testes locais com localhost, 127.0.0.1 e [::1]. A URI de retorno também aceita esquemas privados de domínio invertido, como com.example.app:/cb. Credenciais, fragmentos, espaços brutos e escapes inválidos são rejeitados. A política do provedor precisa ser conferida separadamente.
Campos reservados não podem ser substituídos
A consulta existente e as linhas adicionais não podem repetir nomes nem sobrescrever campos gerenciados. Segredos, verifier, tokens, objetos request e response_mode são bloqueados ali. Presets de provedores, Discovery, JAR/PAR e recebimento form_post ficam fora do escopo.
A inspeção termina antes do login
A ferramenta não abre o endereço de autorização, recebe callbacks reais ou troca códigos por tokens. Âncoras comuns e caminhos de hash router não são aceitos. Um state igual não comprova assinatura, emissor, vínculo com a sessão, validade temporal ou autorização bem-sucedida.
Limites e memória temporária
Os campos de construção somam no máximo 32.768 caracteres; callback e state esperado têm esse limite cada um. O resultado aceita até 100 parâmetros. Não há histórico persistente. Exemplo, limpeza e substituição aleatória usam prévia; uma ação de desfazer restaura tanto as entradas quanto o resultado anterior.

Dúvidas sobre a URL de autorização OAuth

Por que a URI de redirecionamento precisa coincidir exatamente?

Um esquema, porta, caminho ou barra final diferente pode apontar para outro destinatário. Cadastre no provedor o endereço que será realmente usado. Esta página preserva o texto como valor de parâmetro, mas não consegue consultar o cadastro do seu cliente.

Qual é a diferença entre state e nonce?

State volta nos parâmetros do callback e é comparado ao valor original da transação. Nonce está ligado ao ID token e deve ser conferido depois da validação desse token. Encontrar nonce em um callback colado não substitui essa verificação.

Ainda preciso de PKCE se tenho um segredo de cliente?

O segredo autentica o cliente no endpoint de token. PKCE também liga o código ao verifier original. As recomendações atuais indicam PKCE para clientes confidenciais. Mesmo com o padrão S256 habilitado aqui, confirme o suporte do provedor.

Posso expor o client ID na URL?

Sim, ele é um identificador público. client_secret e code_verifier têm outras funções e não devem entrar na consulta de autorização. A ferramenta bloqueia esses nomes e oferece uma cópia separada do verifier.

O que muda entre OAuth e OpenID Connect?

OAuth autoriza acesso a recursos. OpenID Connect acrescenta autenticação do usuário e um ID token. Inclua openid no scope e nonce conforme os requisitos do provedor. A aplicação continua responsável por validar o token retornado.

Encontrou um erro no cálculo ou na validação?

Prepare a próxima solicitação

Compare a URL de autorização OAuth com o cadastro do cliente e confira o callback usando o state que você guardou para aquela transação específica.