Conn2Flow
Navegação das docs

Referência / Bibliotecas

Biblioteca usuario.php

O cookie de login, as sessões ativas do usuário, a autorização provisória para ações sensíveis, os tokens pessoais de API (c2f_pat_) e os códigos de recuperação do 2FA.

Caminho no Gestor bibliotecas/usuario.php

Tudo o que acontece depois de a senha ser aceita: emitir o cookie de login, listar e encerrar sessões, pedir a senha de novo antes de ações sensíveis, emitir tokens pessoais para a API e guardar os códigos de recuperação do 2FA. Quem a usa é o perfil-usuario e a API.

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

  1. sorteia um pubID (64 hex) e grava em usuarios_tokens com o HMAC USUARIO_HASH_PASSWORD, a validade, o IP e o User-Agent;

  2. monta o token no formato RSA do Gestor (usuario_gerar_jwt(), veja autenticacao.php) e o põe no cookie COOKIE_AUTHNAME: HttpOnly, SameSite=Lax, Secure fora do ambiente de desenvolvimento em HTTP;

  3. grava o cookie COOKIE_AUTHPROFILE com o SHA-256 do id do perfil (usado só para apresentação; não é assinado).

Com sessao, o cookie morre ao fechar o navegador; sem, dura COOKIE_LIFETIME (15 dias). A validação a cada requisição é do roteador (gestor_permissao_token(), ciclo de uma requisição).

usuario_app_gerar_token_autorizacao() (devolve o token em vez de gravar o cookie) e usuario_openssl_gerar_chaves() não têm chamadores.

Sessões ativas

Função
usuario_sessoes_listar($id_usuario, $pubIdAtual = null) As sessões (linhas de usuarios_tokens) já formatadas por usuario_sessao_formatar(): navegador e sistema (usuario_user_agent_analisar(), vazios quando não reconhecidos), IP, datas e qual é a sessão atual
usuario_sessao_revogar($pubID, $id_usuario) Encerra uma sessão; o id_usuarios entra no WHERE para um id adivinhado não derrubar a sessão de outra conta
usuario_sessoes_revogar_outras($pubIdAtual, $id_usuario) Encerra todas, menos a atual (exige o pubID atual)

Autorização provisória

Antes de ações sensíveis (trocar e-mail, senha, 2FA), o perfil-usuario pede a senha de novo. usuario_autorizacao_provisoria() controla essa janela, guardada na sessão com validade de USUARIO_AUTORIZACAO_LIFETIME (300 s):

  • ['validar' => true] abre a janela; ['invalidar' => true] fecha; ['verificar' => true] diz se está aberta;

  • ['verificarModal' => ['cancelarUrl', 'confirmarUrl', 'autorizadoUrl', 'autorizadoUrlQuerystring']] mostra o modal de confirmação quando ela não está aberta.

Tokens pessoais de API

Tokens c2f_pat_<64 hex> (constante USUARIO_API_TOKEN_PREFIXO), aceitos no mesmo Authorization: Bearer dos tokens OAuth2:

  • usuario_api_token_gerar($id_usuario, $nome, $escopos = [], $dias_expiracao = null) devolve o token em texto uma única vez; o banco (usuarios_api_tokens) guarda só o SHA-256 (usuario_api_token_hash()) e um prefixo exibível (usuario_api_token_prefixo());

  • usuario_api_token_validar($token) confere hash, status e validade (usuario_api_token_situacao() distingue revogado de expirado), registra o uso e devolve o mesmo formato de oauth2_validar_token();

  • usuario_api_token_formato() só diz se a string tem o formato, para a API escolher o validador;

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

  • usuario_api_tokens_disponivel(): a tabela existe (instalação migrada).

Códigos de recuperação do 2FA

usuario_recovery_codes_gerar($quantidade = 10) sorteia os códigos (sem 0, O, 1, I e L, para serem copiados à mão); o banco guarda só os hashes (usuario_recovery_code_hash() sobre a forma normalizada por usuario_recovery_code_normalizar(), que ignora hífen, espaço e caixa). usuario_recovery_code_consumir($codigo, $hashes) devolve se o código vale e a lista sem ele (uso único). usuario_recovery_codes_disponivel() informa se a coluna existe.

Legado

usuario_host_dados() devolve dados do usuário de host (modo multi-host, veja host.php) ou de um anônimo. Não tem chamadores.

Funções

Gerado a partir de gestor/bibliotecas/usuario.php · 25 funções

25 de 25

usuario_gerar_jwt

ver no código · linha 94 ↗
usuario_gerar_jwt(array|false $params = false): string|false

Gera token JWT assinado com RSA.

Parâmetros

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

Retorno

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

usuario_gerar_token_autorizacao

ver no código · linha 166 ↗
usuario_gerar_token_autorizacao(array|false $params = false): bool

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

Parâmetros

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

Retorno

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

usuario_autorizacao_provisoria

ver no código · linha 373 ↗
usuario_autorizacao_provisoria(array|false $params = false): bool|void

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

Parâmetros

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

Retorno

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

usuario_user_agent_analisar

ver no código · linha 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.

Parâmetros

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

Retorno

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

usuario_sessao_formatar

ver no código · linha 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.

Parâmetros

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

Retorno

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

usuario_sessoes_listar

ver no código · linha 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.

Parâmetros

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

Retorno

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

usuario_sessao_revogar

ver no código · linha 660 ↗
usuario_sessao_revogar(string $pubID, int $id_usuario): bool

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

Parâmetros

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

Retorno

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

usuario_sessoes_revogar_outras

ver no código · linha 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.

Parâmetros

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

Retorno

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

usuario_api_token_situacao

ver no código · linha 804 ↗
usuario_api_token_situacao(array $registro, int|null $agora = null): string

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

Parâmetros

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

Retorno

string
ativo, revogado ou expirado.

usuario_api_token_gerar

ver no código · linha 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.

Parâmetros

$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.

Retorno

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

usuario_api_token_revogar

ver no código · linha 956 ↗
usuario_api_token_revogar(int $id_token, int $id_usuario): bool

Revoga um Personal Access Token do usuário informado.

Parâmetros

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

Retorno

bool
True quando o comando foi emitido.

usuario_recovery_code_consumir

ver no código · linha 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.

Parâmetros

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

Retorno

array{valido:bool,restantes:array}

usuario_host_dados

ver no código · linha 1131 ↗
usuario_host_dados(array|false $params = false): mixed|array

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

Parâmetros

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

Retorno

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

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada