Pular para o conteúdo principal

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:

User signs up → AuthProvider creates account → Sends activation code via email ✅
User logs in → AuthProvider verifies credentials → Returns access tokens ✅

✨ Principais Recursos

RecursoO que fazExemplo de Uso
🔐 Registro de UsuárioCriar novas contas de usuárioFormulário de inscrição
🚪 Login/SairAutenticar usuáriosPágina de login
🔑 Gerenciamento de SenhasAlterar e redefinir senhasFluxo de esqueci a senha
🎫 Gerenciamento de TokensManter usuários logados com segurançaAtualização automática de sessões
✉️ Verificação de E-mailEnviar códigos de ativaçãoVerificar e-mail após inscrição
🌍 Multi-idiomaSuporte a diferentes idiomasAplicativos internacionais

O sistema suporta múltiplos provedores de autenticação de usuários: login+senha e OAuth.

Exemplo de Fluxo de Autenticação com verificação de e-mail

1. User enters email + password

2. auth() called

3. OneEntry verifies credentials
(Compares hashed passwords)

4. Returns authentication token
(JWT or session token)

5. Token stored client-side
(localStorage, cookie, memory)

6. Token sent with requests
(Authorization header)

7. Token validated by server
(Checks expiration, signature)

📋 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), configurado no painel de administração

    • 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 roubar 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", "password", "firstName")
  • type - Tipo de dado (por exemplo, "string", "number", "image")
  • value - O valor real

📊 Tabela de Referência Rápida - Métodos Comuns

MétodoO que faz
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.
oauth()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 os 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("your-url", {
token: "your-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 OneEntry admin, depois use o método oauthSignUp().


Como lido com erros?

Envolva as chamadas em try/catch:

try {
// Success!
} catch (error) {
// Error!
}

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 utiliza:

  • 🔒 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