Axuz Developers

GET /auth/oauth/{provider}/start

Inicia o fluxo OAuth redirecionando pro provider.

  • Acesso: Pública
  • Serviço: https://auth-api.axuz.net

Autenticação aceita

Sem autenticação (rota pública ou protegida por link/assinatura).

Inicia o fluxo OAuth redirecionando pro provider.

Motivo: entrypoint quando o usuário clica "Sign in with Google/GitHub"; gera state assinado com next embutido pra proteger contra CSRF + open redirect no callback. Comportamento: resolve Provider; se nulo ou não Configured → recusa via refuseOAuthProvider (503 sem credencial / 501 provider desconhecido — O-034); valida next via IsTrustedRedirect (descarta se malicioso); State.Issue(next) para embutir/assinar; wave 9: grava o cookie tx (axuz_oauth_tx: verifier PKCE + nonce + hash do state, assinado) e, se o provider fala PKCE (Google), redireciona com code_challenge S256 + nonce; senão http.Redirect(302) pra AuthURL(state).

Entradas: chi URL param "provider"; query next (opcional).

Retorno: 302 pro provider; 503 quando o provider existe mas não tem credencial; 501 quando o nome do provider é desconhecido; 500 se State.Issue falha. Efeito: emite Location header + Set-Cookie axuz_oauth_tx; nenhum DB.

Parâmetros

NomeEmTipoObrigatórioDescrição
providerpathstringsim

Respostas

200

Sucesso.

302

Pro provider

NomeTipoObrigatórioDescrição
errorstringsim

429

Limite de requisições excedido.

NomeTipoObrigatórioDescrição
errorstringsim

500

Se State.Issue falha. Efeito: emite Location header + Set-Cookie axuz_oauth_tx

NomeTipoObrigatórioDescrição
errorstringsim

501

Quando o nome do provider é desconhecido

NomeTipoObrigatórioDescrição
errorstringsim

503

Quando o provider existe mas não tem credencial

NomeTipoObrigatórioDescrição
errorstringsim

Exemplos

O "Try it" está desligado nesta referência. Use os exemplos com a sua credencial de teste.

curl

curl -sS -X GET 'https://auth-api.axuz.net/auth/oauth/PROVIDER/start'

Node.js

const res = await fetch("https://auth-api.axuz.net/auth/oauth/PROVIDER/start", {
  method: 'GET',
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
console.log(await res.json());

Python

import os
import requests

res = requests.request(
    "GET",
    "https://auth-api.axuz.net/auth/oauth/PROVIDER/start",
    timeout=30,
)
res.raise_for_status()
print(res.json())