Pular para o conteúdo principal

Introdução

🎯 O que este módulo faz?

O módulo Users permite gerenciar usuários registrados. No Platform OneEntry, existem as ferramentas necessárias para trabalhar com usuários registrados.


📖 Explicação Simples

Toda aplicação precisa de gerenciamento de usuários:

  • 📝 Perfis de Usuário - Gerenciar informações do usuário
  • 💾 Dados de Usuário Personalizados - Armazenar dados específicos da aplicação (objeto de estado)
  • 🔍 Busca de Usuário - Pesquisar e filtrar usuários

✨ Conceitos Chave

O que é um Usuário?

Um Usuário é uma conta registrada em sua aplicação:

  • Informações Básicas - Nome, e-mail, telefone
  • Autenticação - Armazenamento seguro de senhas
  • Objeto de Estado - Dados personalizados da aplicação
  • Carimbos de Tempo - Data de registro, último login
  • Status - Ativo, inativo, bloqueado
  • Permissões - Funções e níveis de acesso do usuário

Estrutura do Usuário

Cada usuário tem esta estrutura:

{
id: 8, // User ID
identifier: 'test@test.ru', // User identifier (email/login)
authProviderIdentifier: 'email', // Auth provider type
formIdentifier: 'reg', // Registration form identifier
formData: [ // User profile data
{ marker: 'name_reg', type: 'string', value: 'Ivan' },
{ marker: 'phone_reg', type: 'string', value: '+19258382556' },
],
groups: [1], // User groups for permissions
state: {}, // Custom application data
moduleFormConfigs: [], // Additional form configurations
total: "1" // Total count (for pagination)
}

Campos Chave:

  • id - Identificador único do usuário
  • identifier - Login do usuário (e-mail, telefone, nome de usuário)
  • authProviderIdentifier - Método de autenticação utilizado (e-mail, telefone, etc.)
  • formData - Array de campos de formulário com informações do perfil do usuário
  • groups - Array de IDs de grupos para controle de acesso
  • state - Objeto JSON personalizado para dados específicos da aplicação

Obter usuário com dados de estado personalizados

Benefícios:

  • 🔒 Seguro - Hashing de senhas, autenticação segura
  • 📋 Validado - Validação de e-mail e dados
  • 🔄 Autenticado - Sessões baseadas em token
  • 💾 Persistente - Dados armazenados no banco de dados

Objeto de Estado do Usuário

Você pode armazenar os dados necessários para o funcionamento da sua aplicação em um objeto de estado. Quando mudar o usuário, adicione os dados necessários ao estado. Quando os dados do usuário forem recebidos posteriormente, eles conterão um objeto de estado.

Um exemplo em que adicionamos informações ao usuário sobre quantos pedidos ele fez. Adicione um campo "orderCount" com o valor ao objeto de estado.

O objeto de estado é um armazenamento de dados personalizados por usuário:

Caso de UsoExemplo de EstadoDescrição
E-commerce{ orderCount: 5, totalSpent: 499.99 }Rastrear histórico de compras
Site de Conteúdo{ articlesRead: 25, bookmarks: [1,2,3] }Rastrear consumo de conteúdo
Aplicativo Social{ postsCount: 42, followers: 150 }Rastrear métricas sociais
Jogos{ level: 15, score: 9500, achievements: [...] }Rastrear progresso no jogo
SaaS{ plan: 'premium', usage: 75 }Rastrear dados de assinatura

Fluxo de Trabalho do Usuário

1. User fills registration form
(Email, password, name)

2. createUser() called
(OneEntry validates and hashes password)

3. User account created
(Stored in database)

4. User logs in
(authenticateUser() verifies credentials)

5. Authentication token returned
(Used for subsequent requests)

6. Application updates user state
(Custom data like orderCount)

7. User data fetched as needed
(getUserById() with current state)

Por que usar o Módulo de Usuários?

BenefícioDescrição
Autenticação SeguraHashing de senhas, gerenciamento de tokens
Gerenciamento de UsuáriosLer, atualizar, excluir usuários
Armazenamento de Dados PersonalizadosObjeto de estado para dados específicos da aplicação
Validação de E-mailVerificação automática de formato de e-mail
Prevenção de DuplicatasImpede registro de e-mails duplicados
Gerenciamento de SessõesAutenticação baseada em token

📋 O que você precisa saber

Provedor de Autorização

Os usuários no OneEntry são gerenciados através de um sistema de provedor de autorização que lida com mecanismos de registro e autenticação.

Pontos chave:

  • Os usuários se registram através de formulários configurados no painel de administração do OneEntry
  • Cada usuário está associado a um provedor de autenticação (e-mail, telefone, etc.)
  • Os dados do usuário são armazenados em campos de formulário definidos por formData
  • Metadados adicionais são armazenados no objeto state

O Objeto de Estado do Usuário é Flexível

O objeto de estado pode armazenar qualquer dado JSON personalizado

Melhores práticas:

  • Armazene apenas dados específicos da aplicação
  • Mantenha o objeto de estado organizado com objetos aninhados
  • Atualize todo o objeto de estado (espalhe os dados existentes)
  • Não armazene dados sensíveis no estado

Segurança da Senha

O OneEntry lida automaticamente com a segurança da senha

Sua responsabilidade:

  • Impor requisitos de senha (comprimento, complexidade)
  • Validar a senha no lado do cliente antes de enviar
  • Nunca registre senhas
  • Use HTTPS para todas as solicitações de autenticação

Gerenciamento de Tokens de Autenticação

Armazene e use tokens de autenticação de forma segura

Melhores práticas para tokens:

  • Armazene em cookies HTTP-only sempre que possível
  • Use tempos de expiração curtos (1-2 horas)
  • Implemente tokens de atualização para sessões longas
  • Limpe o token ao sair
  • Nunca exponha tokens em URLs

Validação do Registro do Usuário

Sempre valide a entrada do usuário antes do registro

Atualizando o Estado do Usuário com Segurança

Sempre preserve o estado existente ao atualizar:

// ❌ Bad - Overwrites entire state
const userstate = {
orderCount: 1
}

// ✅ Good - Preserve existing state
const userstate = {
...user.state, // Spread existing state
orderCount: (user.state.orderCount || 0) + 1 // Update specific field
}

Prevenção de E-mail Duplicado

O OneEntry previne automaticamente o registro de e-mails duplicados

Melhor prática: Verifique o status de erro e mostre uma mensagem amigável ao usuário.

Paginação de Usuários

Para grandes bases de usuários, sempre pagine ao buscar múltiplos usuários


💡 Notas Importantes

Autorização Necessária

A maioria dos métodos de usuário requer autorização através do módulo AuthProvider. Certifique-se de autenticar o usuário primeiro antes de chamar métodos de gerenciamento de usuários.


Dados do Formulário do Usuário

Os dados do usuário são estruturados de acordo com os formulários configurados no painel de administração do OneEntry:

  • Cada usuário tem um formIdentifier que referencia o formulário de registro utilizado
  • Os dados do usuário são armazenados no array formData com marcadores, tipos e valores
  • Os tipos de campo suportados incluem: string, integer, float, date, dateTime, time, text, textWithHeader, image, groupOfImages, file, radioButton, list, entity, timeInterval

Diretrizes do Objeto de Estado

Melhores práticas para o objeto de estado:

  • Armazene apenas dados específicos da aplicação
  • Mantenha o estado organizado com objetos aninhados
  • Atualize todo o estado (espalhe os dados existentes)
  • Não armazene dados sensíveis (senhas, tokens)
  • Não armazene grandes dados binários
  • Use convenções de nomenclatura consistentes

Notificações Push

Use addFCMToken() e deleteFCMToken() para gerenciar tokens do Firebase Cloud Messaging para enviar notificações push aos usuários.


Dados de Notificação

Ao atualizar usuários, você pode fornecer um objeto notificationData contendo:

  • email - Endereço de e-mail para notificações
  • phonePush - Array de números de telefone para notificações push
  • phoneSMS - Número de telefone para notificações SMS

📊 Tabela de Referência Rápida

MétodoDescriçãoCaso de Uso
getUser()Obter dados do usuário autorizadoBuscar perfil do usuário atual
updateUser()Atualizar informações do usuárioAtualizações de perfil, mudanças de estado
archiveUser()Arquivar conta de usuárioExclusão suave da conta do usuário
deleteUser()Excluir usuário permanentementeExclusão definitiva da conta do usuário
addFCMToken()Adicionar token FCM para notificações pushHabilitar notificações push
deleteFCMToken()Remover token FCMDesabilitar notificações push

❓ Perguntas Comuns (FAQ)

O que é o objeto de estado do usuário e como devo usá-lo?

O objeto de estado é um armazenamento JSON flexível para dados de usuário específicos da aplicação. Use-o para rastrear métricas personalizadas como contagem de pedidos, preferências ou progresso. Sempre espalhe o estado existente ao atualizar para evitar sobrescrever outros dados.


Como atualizo as informações do perfil do usuário?

Use updateUser() para modificar os dados do perfil do usuário. Você pode atualizar campos de dados do formulário, configurações de notificação e o objeto de estado. Lembre-se de autenticar o usuário primeiro usando o módulo AuthProvider.


Qual é a diferença entre archiveUser() e deleteUser()?

archiveUser() é uma exclusão suave que oculta o usuário, mas preserva os dados (pode ser restaurado). deleteUser() remove permanentemente o usuário e todos os dados associados (não pode ser desfeito). Use arquivamento, a menos que você precise de remoção completa de dados.


Como lido com notificações push para usuários?

Use addFCMToken() para registrar um token do Firebase Cloud Messaging para o usuário. Isso permite enviar notificações push para seus dispositivos. Use deleteFCMToken() quando eles saírem ou desativarem as notificações.


Posso armazenar dados sensíveis no objeto de estado do usuário?

Não! Nunca armazene senhas, tokens, números de cartão de crédito ou outros dados sensíveis no objeto de estado. Ele não é criptografado especificamente para dados sensíveis. Use sistemas seguros e projetados para informações sensíveis.


Como busco dados do usuário após o registro?

Após o registro e autenticação bem-sucedidos, use getUser() para buscar os dados do usuário autenticado, incluindo suas informações de perfil e objeto de estado personalizado.


🎓 Melhores Práticas

  • Valide a entrada antes do registro - Verifique o formato do e-mail, a força da senha
  • Use HTTPS para autenticação - Criptografe todas as solicitações de login
  • Implemente requisitos de senha - Mínimo de 8 caracteres, letras maiúsculas e minúsculas, números
  • Armazene tokens de forma segura - Cookies HTTP-only ou armazenamento seguro
  • Preserve o estado existente - Espalhe os dados existentes ao atualizar o estado
  • Lide com e-mails duplicados - Capture erros 409 e mostre uma mensagem amigável ao usuário
  • Implemente logout - Limpe tokens e dados de sessão
  • Cache os dados do usuário - Reduza chamadas de API para usuários acessados com frequência

Mais informações sobre gerenciamento de usuários no painel de administração do OneEntry: https://doc.oneentry.cloudhttps://doc.oneentry.cloud/docs/category/users


Definição do módulo Users


const { Users } = defineOneEntry(
"sua-url-do-projeto", {
"token": "seu-token-de-aplicativo"
}
);


🔗 Documentação Relacionada