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á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 de 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. 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í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 de formato de e-mail |
| Prevenção de Duplicatas | Impede registro de e-mails duplicados |
| 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:
// ❌ 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
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 | Exclusão suave da conta do usuário |
| deleteUser() | Excluir usuário permanentemente | Exclusão definitiva da 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 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
- Módulo AuthProvider - Necessário para autenticação de usuários
- Painel de Administração do OneEntry - Usuários - Documentação oficial do painel de administração
- Melhores Práticas de Autenticação
- Segurança de Senha
- 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