Introdução
🎯 O que este módulo faz?
O módulo Users permite gerenciar usuários registrados. Na Plataforma 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 Data/Hora - 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, // ID do Usuário
identifier: 'test@test.ru', // Identificador do usuário (e-mail/login)
authProviderIdentifier: 'email', // Tipo de provedor de autenticação
formIdentifier: 'reg', // Identificador do formulário de registro
formData: [ // Dados do perfil do usuário
{ marker: 'name_reg', type: 'string', value: 'Ivan' },
{ marker: 'phone_reg', type: 'string', value: '+19258382556' },
],
groups: [1], // Grupos de usuários para permissões
state: {}, // Dados personalizados da aplicação
moduleFormConfigs: [], // Configurações adicionais do formulário
total: "1" // Contagem total (para paginação)
}
Campos Chave:
id- Identificador único do usuárioidentifier- 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 do formulário com informações do perfil do usuáriogroups- Array de IDs de grupos para controle de acessostate- 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 Uso | Exemplo de Estado | Descriçã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. O usuário preenche o formulário de registro
(E-mail, senha, nome)
↓
2. createUser() chamado
(OneEntry valida e faz hash da senha)
↓
3. Conta de usuário criada
(Armazenada no banco de dados)
↓
4. O usuário faz login
(authenticateUser() verifica credenciais)
↓
5. Token de autenticação retornado
(Usado para solicitações subsequentes)
↓
6. A aplicação atualiza o estado do usuário
(Dados personalizados como orderCount)
↓
7. Dados do usuário buscados conforme necessário
(getUserById() com estado atual)
Por que usar o Módulo de Usuários?
| Benefício | Descrição |
|---|---|
| Autenticação Segura | Hashing de senhas, gerenciamento de tokens |
| Gerenciamento de Usuários | Ler, atualizar, excluir usuários |
| Armazenamento de Dados Personalizados | Objeto de estado para dados específicos da aplicação |
| Validação de E-mail | Verificação automática do formato do e-mail |
| Prevenção de Duplicatas | Impede registro de e-mail duplicado |
| Gerenciamento de Sessões | Autenticaçã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:
// ❌ Ruim - Sobrescreve todo o estado
const userstate = {
orderCount: 1
}
// ✅ Bom - Preserve o estado existente
const userstate = {
...user.state, // Espalhe o estado existente
orderCount: (user.state.orderCount || 0) + 1 // Atualize campo específico
}
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
formIdentifierque referencia o formulário de registro utilizado - Os dados do usuário são armazenados no array
formDatacom 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çõesphonePush- Array de números de telefone para notificações pushphoneSMS- Número de telefone para notificações SMS
📊 Tabela de Referência Rápida
| Método | Descrição | Caso de Uso |
|---|---|---|
| getUser() | Obter dados do usuário autorizado | Buscar perfil do usuário atual |
| updateUser() | Atualizar informações do usuário | Atualizações de perfil, mudanças de estado |
| archiveUser() | Arquivar conta de usuário | Excluir suavemente a conta do usuário |
| deleteUser() | Excluir usuário permanentemente | Excluir permanentemente a conta do usuário |
| addFCMToken() | Adicionar token FCM para notificações push | Habilitar notificações push |
| deleteFCMToken() | Remover token FCM | Desabilitar 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 específicos do usuário na 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 dos 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 fizerem logout ou desabilitarem 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
- Módulo AuthProvider - Necessário para autenticação de usuários
- Painel de Administração OneEntry - Usuários - Documentação oficial do painel de administração
- Melhores Práticas de Autenticação
- Segurança de Senhas
- Módulo de Pedidos - Pedidos referenciam usuários para histórico de pedidos
- Módulo de Pagamentos - Pagamentos referenciam usuários para histórico de pagamentos