Introdução
Autenticação e registro de usuários facilitados.
🎯 O que este módulo faz?
O módulo AuthProvider lida com tudo relacionado à autenticação de usuários - login, registro, gerenciamento de senhas e manutenção da sessão de forma segura.
Pense nele como o segurança do seu aplicativo - ele verifica quem é quem, permite a entrada de usuários autorizados e mantém os maus elementos do lado de fora.
📖 Explicação Simples
Quando os usuários querem:
- 👤 Registro de Usuário - Criar novas contas de usuário
- 🔐 Autenticação - Login e gerenciamento de sessão
- 🔑 Alterar senha
- 🚪 Sair com segurança
- ✉️ Verificar e-mail com códigos de ativação
- 🔒 Segurança - Hashing de senhas, gerenciamento de tokens
...este módulo faz todo o trabalho pesado!
O problema de construir a gestão de autenticação de usuários do zero:
❌ Sem hashing de senhas
❌ Sem validação
❌ Sem verificação de duplicatas
❌ Sem verificação de e-mail
❌ Comparação de senhas insegura
❌ Sem gerenciamento de sessão
❌ Sem limitação de taxa
Problemas:
- 🔒 Inseguro - Sem hashing de senhas, vulnerável a ataques
- 📋 Sem validação - Dados ruins podem ser armazenados
- 🔄 Sem autenticação - Sem sessões ou tokens
- 💾 Sem persistência - Dados perdidos ao reiniciar
A solução AuthProvider:
✅ Bom - Gerenciamento de autenticação seguro
OneEntry automaticamente:
- Faz o hashing de senhas de forma segura
- Valida o formato do e-mail
- Verifica duplicatas
- Armazena dados de usuários de forma persistente
- Fornece tokens de autenticação
Como funciona:
Usuário se registra → AuthProvider cria conta → Envia código de ativação por e-mail ✅
Usuário faz login → AuthProvider verifica credenciais → Retorna tokens de acesso ✅
✨ Principais Recursos
| Recurso | O que faz | Exemplo de Uso |
|---|---|---|
| 🔐 Registro de Usuário | Criar novas contas de usuário | Formulário de registro |
| 🚪 Login/Sair | Autenticar usuários | Página de login |
| 🔑 Gerenciamento de Senhas | Alterar e redefinir senhas | Fluxo de esqueci a senha |
| 🎫 Gerenciamento de Tokens | Manter usuários logados com segurança | Atualização automática de sessões |
| ✉️ Verificação de E-mail | Enviar códigos de ativação | Verificar e-mail após registro |
| 🌍 Multi-idioma | Suporte a diferentes idiomas | Aplicativos internacionais |
Fluxo de Autenticação
1. Usuário insere e-mail + senha
↓
2. auth() chamado
↓
3. OneEntry verifica credenciais
(Compara senhas hash)
↓
4. Retorna token de autenticação
(JWT ou token de sessão)
↓
5. Token armazenado no lado do cliente
(localStorage, cookie, memória)
↓
6. Token enviado com requisições
(Cabeçalho de Autorização)
↓
7. Token validado pelo servidor
(Verifica expiração, assinatura)
📋 O que você precisa saber
Provedores de Autenticação
OneEntry suporta diferentes maneiras de autenticar:
- E-mail (mais comum) - tradicional e-mail/senha
- Telefone (SMS) - autenticação via número de telefone
- Social (OAuth) - Google, Facebook, etc.
Cada provedor tem um marcador (por exemplo, email para o provedor de e-mail).
Tokens Explicados Simplesmente
Quando um usuário faz login, ele recebe dois tokens:
-
Token de Acesso 🎫 - Como um ingresso de cinema (expira rapidamente, ~15 minutos)
- Usado para requisições de API
- De curta duração por segurança
-
Token de Atualização 🔄 - Como um passe de temporada (dura mais)
- Usado para obter novos tokens de acesso
- Permanece válido por dias/semanas
Por que dois tokens? Segurança! Se alguém rouba o token de acesso, ele expira rapidamente.
Campos do Formulário
Ao registrar ou atualizar usuários, você envia dados do formulário com:
marker- Nome do campo (por exemplo, "email", "senha", "primeiroNome")type- Tipo de dado (por exemplo, "string", "número", "imagem")value- O valor real
📊 Tabela de Referência Rápida - Métodos Comuns
| Método | O que faz | Quando usar |
|---|---|---|
| auth() | Permite autenticar usuários. | |
| changePassword() | Alteração de senha do usuário. | |
| checkCode() | Verificação do código de ativação do usuário. | |
| generateCode() | Obtenção do código para ativar o usuário. | |
| getActiveSessionsByMarker() | Obtenção de dados de sessões ativas de usuários. | |
| getAuthProviderByMarker() | Obter um objeto de provedor de autenticação por marcador. | |
| getAuthProviders() | Obter todos os objetos de provedores de autenticação. | |
| logout() | Logout da conta do usuário. | |
| logoutAll() | Logout da conta do usuário em todos os dispositivos. | |
| oauthSignUp() | Registro de usuário (autorização) via OAUTH. | |
| refresh() | Atualizar tokens de usuário. | |
| signUp() | Registro de usuário. |
❓ Perguntas Comuns (FAQ)
Preciso gerenciar tokens manualmente?
Não! O SDK gerencia tokens automaticamente. Basta chamar os métodos e o SDK cuida de:
- Armazenar tokens
- Atualizar tokens expirados
- Enviar tokens com requisições de API
Como mantenho os usuários logados após a atualização da página?
Configure o SDK com saveFunction:
const { AuthProvider } = defineOneEntry("sua-url", {
token: "seu-token",
auth: {
refreshToken: localStorage.getItem('refreshToken'),
saveFunction: (token) => localStorage.setItem('refreshToken', token)
}
});
Qual é a diferença entre login e e-mail?
login- pode ser e-mail OU nome de usuário (o que seu provedor de autenticação aceitar)email- sempre um endereço de e-mail
Posso usar login social (Google, Facebook)?
Sim! Configure provedores OAuth no admin do OneEntry, depois use o método oauthSignUp().
Como lido com erros?
Envolva as chamadas em try/catch:
try {
// Sucesso!
} catch (error) {
// Erro!
}
O que acontece quando o token de acesso expira?
O SDK usa automaticamente o token de atualização para obter um novo token de acesso. Seus usuários permanecem logados sem interrupções!
É seguro?
Sim! O OneEntry usa:
- 🔒 Criptografia HTTPS
- 🎫 Tokens JWT (padrão da indústria)
- 🔄 Tokens de acesso de curta duração
- 🔐 Hashing seguro de senhas
- ✉️ Verificação de e-mail
Mais informações sobre a interface do usuário do módulo https://doc.oneentry.cloud/docs/users/auth_provider
Definição do módulo AuthProvider
const { AuthProvider } = defineOneEntry( "sua-url-do-projeto", { "token": "seu-token-de-aplicativo" });
🔗 Documentação Relacionada
- Módulo de Usuários - Gerenciar perfis e dados de usuários
- Módulo de Formulários - Criar formulários de registro/login
- Módulo FormData - Lidar com envios de formulários