Módulo Auth
Autenticação de usuário, registro e gerenciamento de sessão viabase44.auth.
Conteúdo
- Tipos TypeScript
- Métodos
- Exemplos
- Tratamento de erros
- Provedores de autenticação
- Disponibilidade de ambiente
- Visibilidade do aplicativo
- Limitações
Tipos TypeScript
Interface User
Interface LoginResponse
Interfaces de parâmetros
RegisterParams
VerifyOtpParams
ResetPasswordParams
ChangePasswordParams
Tipo Provider
Métodos
Interface do módulo
Tabela de referência de métodos
| Método | Parâmetros | Tipo de retorno | Descrição |
|---|---|---|---|
register() | params: RegisterParams | Promise<any> | Cria nova conta de usuário |
loginViaEmailPassword() | email: string, password: string, turnstileToken?: string | Promise<LoginResponse> | Autentica com e-mail/senha |
loginWithProvider() | provider: Provider, fromUrl?: string | void | Inicia fluxo de login OAuth. Provedores: 'google' (padrão), 'microsoft', 'facebook' (ative nas configurações do aplicativo) |
me() | Nenhum | Promise<User> | Obtém usuário atualmente autenticado |
updateMe() | data: Partial<User> | Promise<User> | Atualiza perfil do usuário atual |
logout() | redirectUrl?: string | void | Redireciona para logout do lado do servidor (limpa cookies HTTP-only e sessão), depois para redirectUrl ou URL atual |
redirectToLogin() | nextUrl: string | void | ⚠️ Evite - Prefira UI de login personalizada com loginViaEmailPassword() ou loginWithProvider() |
isAuthenticated() | Nenhum | Promise<boolean> | Verifica se o usuário está logado |
setToken() | token: string, saveToStorage?: boolean | void | Define manualmente o token de autenticação |
inviteUser() | userEmail: string, role: string | Promise<any> | Envia e-mail de convite |
verifyOtp() | params: VerifyOtpParams | Promise<any> | Verifica código OTP |
resendOtp() | email: string | Promise<any> | Reenvia código OTP |
resetPasswordRequest() | email: string | Promise<any> | Solicita redefinição de senha |
resetPassword() | params: ResetPasswordParams | Promise<any> | Redefine senha com token |
changePassword() | params: ChangePasswordParams | Promise<any> | Altera senha do usuário |
Exemplos
Registrar novo usuário (fluxo completo)
O registro requer verificação de e-mail antes do login. Fluxo completo:- Registrar - Cria a conta do usuário
- E-mail de verificação enviado - O usuário recebe um código OTP
- Verificar OTP - O usuário insere o código para verificar o e-mail
- Login - O usuário agora pode fazer login
Importante: Os usuários não podem fazer login até que concluam a verificação OTP. Tentar chamar loginViaEmailPassword antes da verificação falhará.
Login com e-mail/senha
Login com provedor OAuth
Provedores suportados:'google' (ativado por padrão), 'microsoft' e 'facebook'. Ative Microsoft ou Facebook nas configurações de autenticação do seu aplicativo antes de usá-los.
Obter usuário atual
Atualizar perfil de usuário
Verificar status de autenticação
Logout
O logout redireciona o usuário para o endpoint de logout do lado do servidor (/api/apps/auth/logout) para limpar cookies HTTP-only e a sessão, depois redireciona para a URL fornecida (ou a página atual se omitida). Requer um ambiente de navegador.
Padrão de rota protegida
Definir token de autenticação
Convidar usuário para o aplicativo
Verificação OTP
Fluxo de redefinição de senha
Alterar senha
Tratamento de erros
Cenários de erro comuns
O módulo auth pode lançar vários erros. Aqui estão cenários comuns e como tratá-los:Erros de autenticação (401/403)
Erros de validação (400/422)
Limitação de taxa (429)
Manipulador de erros genérico
Provedores de autenticação
Configure provedores de autenticação no painel do seu aplicativo:Provedores disponíveis
Integrados (todos os planos):- E-mail/senha - Padrão, sempre ativado
- Google - Autenticação OAuth
- Microsoft - Autenticação OAuth
- Facebook - Autenticação OAuth
- Okta
- Azure AD
- GitHub
Usando provedores OAuth
- Google – ativado por padrão.
- Microsoft – ative nas configurações de autenticação do seu aplicativo antes de usar.
- Facebook – ative nas configurações de autenticação do seu aplicativo antes de usar.
Disponibilidade de ambiente
| Ambiente | Disponibilidade | Notas |
|---|---|---|
| Frontend | ✅ Sim | Todos os métodos disponíveis |
| Funções de backend | ✅ Sim | Use createClientFromRequest(req) para cliente autenticado |
| Service Role | ❌ Não | Métodos de autenticação não disponíveis no contexto service role |
Uso no frontend
Uso em funções de backend
Visibilidade do aplicativo
Controle quem pode acessar seu aplicativo nas configurações do aplicativo:Aplicativos públicos
- Nenhum login necessário para acesso básico
- Os usuários podem visualizar conteúdo público sem autenticação
- Usuários autenticados obtêm recursos/dados adicionais
Aplicativos privados
- Login necessário para acessar qualquer conteúdo
- Usuários não autenticados são automaticamente redirecionados para login
- Todo o conteúdo é protegido por padrão
Limitações
Opções de UI de autenticação
- Recomendado: Construa UI de login/cadastro personalizada usando
loginViaEmailPassword()eloginWithProvider()para controle total sobre experiência do usuário e branding - Alternativa:
redirectToLogin()usa páginas de autenticação hospedadas pela Base44 com personalização limitada
Login hospedado (via redirectToLogin)
redirectToLogin()mostra opções de login e cadastro na mesma página- Nenhum método
redirectToSignup()separado - Os usuários podem alternar entre login/cadastro na página hospedada
- ⚠️ Nota: Prefira construir UI de login personalizada para melhor experiência do usuário
Requisitos de senha
- Comprimento mínimo e requisitos de complexidade impostos
- Requisitos não expostos via API
- Erros de validação retornados quando requisitos não são atendidos
Limitação de taxa
- Solicitações OTP são limitadas para prevenir abuso
- Solicitações de redefinição de senha são limitadas
- Tentativas de login podem ser limitadas com proteção Turnstile
Gerenciamento de tokens
- JWTs são armazenados automaticamente no localStorage por padrão
- Expiração e atualização de tokens não expostos na API
- Chame
me()ouisAuthenticated()para verificar validade do token
Melhores práticas
1. Sempre trate erros
2. Verifique autenticação antes de ações protegidas
3. Use segurança de tipos com TypeScript
4. Não hardcode credenciais
5. Forneça feedback ao usuário
6. Trate a expiração de token graciosamente
7. Construa UI de login personalizada (recomendado)
Esta página foi traduzida usando IA. Para informações mais precisas e atualizadas, consulte a versão em inglês.

