Conn2Flow
Docs navigation

Reference / Libraries

usuario.php library

The login cookie, the user's active sessions, provisional authorization for sensitive actions, personal API tokens (c2f_pat_) and 2FA recovery codes.

Path in the Gestor bibliotecas/usuario.php

Everything that happens after the password is accepted: issuing the login cookie, listing and ending sessions, asking for the password again before sensitive actions, issuing personal tokens for the API and keeping the 2FA recovery codes. It is used by perfil-usuario and the API.

usuario_gerar_token_autorizacao(['id_usuarios' => …, 'sessao' => true]):

  1. draws a pubID (64 hex) and stores it in usuarios_tokens with the USUARIO_HASH_PASSWORD HMAC, the expiration, the IP and the User-Agent;

  2. builds the token in the Gestor RSA format (usuario_gerar_jwt(), see autenticacao.php) and puts it in the COOKIE_AUTHNAME cookie: HttpOnly, SameSite=Lax, Secure except in the development environment over HTTP;

  3. writes the COOKIE_AUTHPROFILE cookie with the SHA-256 of the profile id (used only for presentation; it is not signed).

With sessao, the cookie dies when the browser closes; without it, it lasts COOKIE_LIFETIME (15 days). Validation on every request is the router's job (gestor_permissao_token(), request lifecycle).

usuario_app_gerar_token_autorizacao() (returns the token instead of writing the cookie) and usuario_openssl_gerar_chaves() have no callers.

Active sessions

Function
usuario_sessoes_listar($id_usuario, $currentPubId = null) The sessions (usuarios_tokens rows) already formatted by usuario_sessao_formatar(): browser and system (usuario_user_agent_analisar(), empty when unrecognized), IP, dates and which one is the current session
usuario_sessao_revogar($pubID, $id_usuario) Ends one session; id_usuario goes into the WHERE so a guessed id cannot drop another account's session
usuario_sessoes_revogar_outras($currentPubId, $id_usuario) Ends all but the current one (requires the current pubID)

Provisional authorization

Before sensitive actions (changing e-mail, password, 2FA), perfil-usuario asks for the password again. usuario_autorizacao_provisoria() controls that window, kept in the session for USUARIO_AUTORIZACAO_LIFETIME (300 s):

  • ['validar' => true] opens the window; ['invalidar' => true] closes it; ['verificar' => true] tells whether it is open;

  • ['verificarModal' => ['cancelarUrl', 'confirmarUrl', 'autorizadoUrl', 'autorizadoUrlQuerystring']] shows the confirmation modal when it is not open.

Personal API tokens

c2f_pat_<64 hex> tokens (constant USUARIO_API_TOKEN_PREFIXO), accepted in the same Authorization: Bearer as the OAuth2 tokens:

  • usuario_api_token_gerar($id_usuario, $name, $scopes = [], $expiration_days = null) returns the plain token only once; the database (usuarios_api_tokens) keeps only its SHA-256 (usuario_api_token_hash()) and a displayable prefix (usuario_api_token_prefixo());

  • usuario_api_token_validar($token) checks hash, status and expiration (usuario_api_token_situacao() tells revoked from expired), records the use and returns the same format as oauth2_validar_token();

  • usuario_api_token_formato() only tells whether the string has the format, so the API picks the right validator;

  • usuario_api_token_revogar($id_token, $id_usuario), usuario_api_tokens_listar($id_usuario);

  • usuario_api_tokens_disponivel(): the table exists (migrated installation).

2FA recovery codes

usuario_recovery_codes_gerar($amount = 10) draws the codes (without 0, O, 1, I and L, to be copied by hand); the database keeps only the hashes (usuario_recovery_code_hash() over the form normalized by usuario_recovery_code_normalizar(), which ignores hyphens, spaces and case). usuario_recovery_code_consumir($code, $hashes) returns whether the code is valid and the list without it (single use). usuario_recovery_codes_disponivel() tells whether the column exists.

Legacy

usuario_host_dados() returns data of the host user (multi-host mode, see host.php) or of an anonymous one. It has no callers.

Functions

Generated from gestor/bibliotecas/usuario.php · 25 functions

25 of 25

usuario_openssl_gerar_chaves

view source · line 37 ↗
usuario_openssl_gerar_chaves(array|false $params = false): array|false

Gera par de chaves pública/privada OpenSSL.

Parameters

$paramsarray|false
Parâmetros da função.

Returns

array|false
Array com 'publica' e 'privada' ou false.

usuario_gerar_jwt

view source · line 94 ↗
usuario_gerar_jwt(array|false $params = false): string|false

Gera token JWT assinado com RSA.

Parameters

$paramsarray|false
Parâmetros da função.

Returns

string|false
Token JWT ou false se inválido.

usuario_gerar_token_autorizacao

view source · line 166 ↗
usuario_gerar_token_autorizacao(array|false $params = false): bool

Gera token de autorização para autenticação de usuários web.

Parameters

$paramsarray|false
Parâmetros da função.

Returns

bool
True se token criado com sucesso, false caso contrário.

usuario_app_gerar_token_autorizacao

view source · line 284 ↗
usuario_app_gerar_token_autorizacao(array|false $params = false): array|false

Gera token de autorização para aplicativos mobile.

Parameters

$paramsarray|false
Parâmetros da função.

Returns

array|false
Array com 'token' e 'expiration', ou false se inválido.

usuario_autorizacao_provisoria

view source · line 373 ↗
usuario_autorizacao_provisoria(array|false $params = false): bool|void

Gerencia autorizações provisórias de usuários via sessão.

Parameters

$paramsarray|false
Parâmetros da função.

Returns

bool|void
Retorna bool se 'verificar' está definido, void caso contrário.

usuario_user_agent_analisar

view source · line 499 ↗
usuario_user_agent_analisar(string $userAgent): array{navegador:string,sistema:string,dispositivo:string}

Identifica navegador, sistema operacional e tipo de dispositivo a partir do User-Agent.

Parameters

$userAgentstring
Cabeçalho User-Agent bruto (pode vir vazio).

Returns

array{navegador:string,sistema:string,dispositivo:string}
Nomes crus, sem tradução.

usuario_sessao_formatar

view source · line 583 ↗
usuario_sessao_formatar(array $registro, string|null $tokenAtual = null): array

Normaliza uma linha de usuarios_tokens para exibição no painel de sessões.

Parameters

$registroarray
Linha de usuarios_tokens (pubID, ip, user_agent, expiration,
$tokenAtualstring|null
pubID do token da requisição corrente.

Returns

array
Sessão normalizada, com atual, navegador, sistema, dispositivo e sessao.

usuario_sessoes_listar

view source · line 619 ↗
usuario_sessoes_listar(int $id_usuario, string|null $token_atual_pubID = null): array

Lista as sessões ativas de um usuário, já normalizadas para exibição.

Parameters

$id_usuarioint
ID do usuário dono das sessões.
$token_atual_pubIDstring|null
pubID do token da requisição corrente (opcional).

Returns

array
Lista de sessões (mais recentes primeiro); vazia quando não há usuário válido.

usuario_sessao_revogar

view source · line 660 ↗
usuario_sessao_revogar(string $pubID, int $id_usuario): bool

Revoga uma sessão específica do usuário informado.

Parameters

$pubIDstring
Identificador público do token a remover.
$id_usuarioint
ID do usuário dono do token.

Returns

bool
True quando o comando foi emitido; false quando os parâmetros são inválidos.

usuario_sessoes_revogar_outras

view source · line 686 ↗
usuario_sessoes_revogar_outras(string $token_atual_pubID, int $id_usuario): bool

Encerra todas as sessões do usuário, exceto a da requisição corrente.

Parameters

$token_atual_pubIDstring
pubID do token que deve ser preservado.
$id_usuarioint
ID do usuário dono dos tokens.

Returns

bool
True quando o comando foi emitido; false quando os parâmetros são inválidos.

usuario_api_token_prefixo

view source · line 784 ↗
usuario_api_token_prefixo(string $token): string

Extrai o prefixo exibível de um token.

Parameters

$tokenstring
Token em texto puro.

Returns

string
Prefixo do sistema mais os 8 primeiros caracteres da parte aleatória.

usuario_api_token_situacao

view source · line 804 ↗
usuario_api_token_situacao(array $registro, int|null $agora = null): string

Decide se um token registrado está utilizável AGORA.

Parameters

$registroarray
Linha de usuarios_api_tokens (status, expiracao).
$agoraint|null
Timestamp de referência; omitido usa time().

Returns

string
ativo, revogado ou expirado.

usuario_api_token_gerar

view source · line 838 ↗
usuario_api_token_gerar(int $id_usuario, string $nome, array $escopos = Array(), int|null $dias_expiracao = null): array|false

Gera um Personal Access Token para o usuário.

Parameters

$id_usuarioint
Dono do token.
$nomestring
Identificador amigável.
$escoposarray
Permissões autorizadas.
$dias_expiracaoint|null
Validade em dias; null para token sem expiração.

Returns

array|false
['token' => …, 'prefixo' => …, 'expiracao' => …] ou false se inválido.

usuario_api_token_validar

view source · line 892 ↗
usuario_api_token_validar(string $token_puro): array|false

Valida um Personal Access Token e registra o uso.

Parameters

$token_purostring
Token recebido no cabeçalho.

Returns

array|false
Dados do usuário autenticado ou false.

usuario_api_token_revogar

view source · line 956 ↗
usuario_api_token_revogar(int $id_token, int $id_usuario): bool

Revoga um Personal Access Token do usuário informado.

Parameters

$id_tokenint
Identificador do token.
$id_usuarioint
Dono do token.

Returns

bool
True quando o comando foi emitido.

usuario_api_tokens_listar

view source · line 982 ↗
usuario_api_tokens_listar(int $id_usuario): array

Lista os tokens de um usuário, já anotados com a situação corrente.

Parameters

$id_usuarioint
Dono dos tokens.

Returns

array
Lista de tokens (mais recentes primeiro).

usuario_recovery_code_consumir

view source · line 1092 ↗
usuario_recovery_code_consumir(string $codigo, array $hashes): array{valido:bool,restantes:array}

Consome um código de recuperação de uma lista de hashes.

Parameters

$codigostring
Código digitado pelo usuário.
$hashesarray
Lista de hashes ainda válidos.

Returns

array{valido:bool,restantes:array}

usuario_host_dados

view source · line 1131 ↗
usuario_host_dados(array|false $params = false): mixed|array

Obtém dados do usuário do host atual.

Parameters

$paramsarray|false
Parâmetros da função.

Returns

mixed|array
Valor do campo ou array com todos os dados do usuário.

The Future is Hybrid: Human + AI.

Conn2Flow is the tool. If you need the Architect to design your company's strategy using this technology...

Hire Specialized Consulting