Documentação
Servidor OAuthReferência

Referência

Endpoints, escopos, erros de protocolo e as configurações que controlam o Servidor OAuth.

Tudo que o servidor de autorização expõe, em um lugar. Para assinaturas dos métodos do SDK veja auth.oauth; para códigos de erro da nulvless veja Códigos de erro.

Todos os caminhos são relativos ao seu emissor.

Endpoints

MétodoCaminhoAuthO que faz
GET/.well-known/openid-configurationpúblicoDocumento de discovery
GET/.well-known/jwks.jsonpúblicoChaves públicas de assinatura
GET/oauth/authorizepúblicoInicia o fluxo, redireciona para sua tela
GET/oauth/authorizations/:idsessãoO que uma autorização pendente pede
POST/oauth/authorizations/:id/consentsessãoRegistra aprovar ou negar
POST/oauth/tokenclienteTroca um código, ou renova
GET/oauth/userinfobearerClaims dos escopos concedidos
POST/oauth/registerpúblicoRegistro dinâmico, quando habilitado

"Público" quer dizer sem chave de API. Os dois endpoints de autorização agem em nome do usuário logado, que é o que amarra o consentimento a uma pessoa.

GET /oauth/authorize

ParâmetroObrigatórioNotas
client_idsim
redirect_urisimCasamento exato com um URI registrado
response_typesimcode
code_challengesimBase64url do SHA-256 do verifier
code_challenge_methodsimS256
scopenãoSeparado por espaço; padrão email
statenãoDevolvido intacto
noncenãoEcoado no ID token
resourcenãoA API para a qual o token se destina

Responde 403 quando o Servidor OAuth está desligado no ambiente.

POST /oauth/token

Parâmetroauthorization_coderefresh_token
grant_typeobrigatórioobrigatório
codeobrigatório—
redirect_uriobrigatório—
code_verifierobrigatório—
refresh_token—obrigatório
client_idobrigatórioobrigatório
client_secretclientes confidenciaisclientes confidenciais
{
  "access_token": "…",
  "token_type": "Bearer",
  "expires_in": 3600,
  "refresh_token": "…",
  "id_token": "…"
}

id_token só está presente quando openid foi concedido.

Escopos

EscopoClaims
openidEmite um ID token
emailemail, email_verified
profilename, picture
phonephone_number, phone_number_verified

Erros de protocolo

Estas são strings de erro do OAuth 2.1, distintas dos códigos de erro da nulvless. Onde aparecem depende de o redirect URI já ter sido validado — veja o fluxo.

ErroSignificado
invalid_requestParâmetro ausente ou malformado
invalid_clientCliente desconhecido, ou segredo errado
invalid_grantCódigo expirado, já usado, ou code_verifier não bate
unauthorized_clientCliente não pode usar esse grant
unsupported_response_typeQualquer coisa além de code
invalid_scopeEscopo fora do conjunto suportado
access_deniedO usuário clicou em Negar
server_errorFalha do nosso lado

Os dois que valem tratamento específico são invalid_grant — normalmente código repetido ou expirado, e sempre um recomeço do fluxo — e access_denied, que é decisão do usuário e merece uma mensagem calma, não uma página de erro.

Configurações

No Console, em Servidor OAuth, por ambiente.

Habilitadobooleano, padrão desligadoOptional

Enquanto desligado, /oauth/authorize responde 403.

URL da tela de consentimentopadrão: Site URLOptional

URL base da sua tela de consentimento, para quando ela não fica no seu Site URL.

Caminho de autorizaçãopadrão /oauth/consentOptional

Caminho da sua tela de consentimento, anexado à URL acima.

Permitir clientes dinâmicosbooleano, padrão desligadoOptional

Habilita POST /oauth/register. Veja o trade-off.

O Site URL fica nas configurações de URL do projeto, não aqui — é o mesmo valor usado nos links de confirmação.

Cache

RespostaHeader
Documento de discoveryCache-Control: public, max-age=3600
JWKSCache-Control: public, max-age=600
Todo o restoCache-Control: no-store

no-store nas respostas de token é exigido pela RFC 6749 §5.1 e pelo OpenID Connect Core §3.1.3.3. Os dois documentos públicos abrem exceção de propósito, porque todo cliente os busca constantemente e eles não contêm segredo.

Nesta página