Caminho no Gestor bibliotecas/oauth2.php
Emite e valida os tokens com que sistemas externos chamam a API do Gestor (_api/…). Não é o login social (oauth.php).
Tokens
oauth2_gerar_token_client_credentials(['id_usuarios' => …, 'grant_type' => 'client_credentials', 'scope' => …]) recebe um usuário já autenticado e devolve:
{ "access_token": "…", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "…", "scope": "read" }-
Os dois tokens usam o formato JWT do Gestor, assinados com a chave RSA privada do site (
chaves/gestor/privada.key, viaautenticacao_gerar_jwt_chave_privada()). -
Cada um tem um
pubIDaleatório, gravado emoauth2_tokenscom o HMACUSUARIO_HASH_PASSWORD, IP, User-Agent e validade. Revogar um token é apagar a linha. -
Validade:
oauth2.token-expiration(3600 s) eoauth2.refresh-token-expiration(30 dias), de$_CONFIG. -
Um usuário tem no máximo
oauth2.maximo-tokens-usuario(5) access tokens ativos: o mais antigo é revogado (oauth2_fifo_ids_para_revogar()). -
Toda emissão apaga antes os tokens vencidos de todos os usuários (
oauth2_limpar_tokens_expirados()).
Validar e renovar
-
oauth2_autorizar_requisicao()lêAuthorization: Bearer <token>e chamaoauth2_validar_token(), que confere a assinatura com a chave pública, opubIDe o HMAC no banco, o tipoaccess, a validade e se o usuário está ativo. Devolveid_usuarios,nome,email,usuario,id_usuarios_perfisescope, oufalse. -
oauth2_renovar_token(['refresh_token' => …])valida o refresh token, apaga-o (uso único) e emite um par novo. O access token anterior continua válido até vencer.
Funções
Gerado a partir de gestor/bibliotecas/oauth2.php · 6 funções
oauth2_fifo_ids_para_revogar
ver no código · linha 23 ↗oauth2_fifo_ids_para_revogar($tokens, $maximo)Calcula os IDs que devem ser revogados antes de inserir um novo access token. Mantém no máximo $maximo tokens pelo critério FIFO (data e ID como desempate).
Parâmetros
$tokens$maximo
oauth2_gerar_token_client_credentials
ver no código · linha 56 ↗oauth2_gerar_token_client_credentials(array $params = false): array|falseGera tokens OAuth 2.0 usando credenciais de usuário do sistema.
Parâmetros
$paramsarray- Parâmetros da função
Retorno
oauth2_validar_token
ver no código · linha 245 ↗oauth2_validar_token(array $params = false): array|falseValida token OAuth 2.0.
Parâmetros
$paramsarray- Parâmetros da função
Retorno
oauth2_autorizar_requisicao
ver no código · linha 367 ↗oauth2_autorizar_requisicao(array $params = false): array|falseAutoriza requisição usando token OAuth 2.0.
Parâmetros
$paramsarray- Parâmetros da função
Retorno
oauth2_limpar_tokens_expirados
ver no código · linha 401 ↗oauth2_limpar_tokens_expirados(): boolLimpa tokens OAuth 2.0 expirados da tabela oauth2_tokens.
Retorno
oauth2_renovar_token
ver no código · linha 427 ↗oauth2_renovar_token(array $params = false): array|falseRenova access token usando refresh token.
Parâmetros
$paramsarray- Parâmetros da função
Retorno