Autenticação e Login
Visão Geral
Seção intitulada “Visão Geral”A Rebase fornece componentes e hooks React prontos para uso para autenticação:
useRebaseAuthController— Gerencia o estado de autenticação, os tokens e a persistência da sessãoLoginView— Formulário de login/cadastro pré-construído com suporte a OAuth- Simulação de papéis — Teste diferentes papéis sem sair da conta
Controlador de Autenticação
Seção intitulada “Controlador de Autenticação”O hook useRebaseAuthController é o núcleo da autenticação do frontend. Ele gerencia o usuário atual, os tokens e a sessão:
import { useRebaseAuthController } from "@rebasepro/app";import { createRebaseClient } from "@rebasepro/client";
const client = createRebaseClient({ baseUrl: API_URL, websocketUrl: WS_URL });
const authController = useRebaseAuthController({ client, googleClientId: GOOGLE_CLIENT_ID // Optional — enables Google OAuth});
// Available properties:authController.user // Current user object (or null)authController.initialLoading // True while checking stored sessionauthController.signOut() // Log outauthController.getAuthToken() // Get current JWT for API callsPasse o authController para o controlador de navegação da Rebase para proteger todo o painel de administração por trás da autenticação.
Visão de Login
Seção intitulada “Visão de Login”O componente LoginView fornece um formulário completo de login e cadastro:
import { LoginView } from "@rebasepro/app";
if (!authController.user) { return ( <LoginView authController={authController} googleClientId={GOOGLE_CLIENT_ID} /> );}A visão de login cuida de:
- Login e cadastro com e-mail/senha
- Login com Google OAuth (quando configurado)
- Fluxo de redefinição de senha
- Validação de formulário e estados de erro
Modelo de Papéis
Seção intitulada “Modelo de Papéis”Os papéis são armazenados como uma coluna de array text[] diretamente na tabela rebase.users. Você define os papéis disponíveis como um enum na definição da sua coleção de usuários:
roles: { name: "Roles", type: "array", columnType: "text[]", of: { name: "Role", type: "string", enum: { admin: "Admin", editor: "Editor", viewer: "Viewer" } }, admin: { readOnly: false }}Para adicionar ou remover opções de papel, atualize o mapa enum na sua coleção de usuários e regenere o esquema.
Simulação de Papéis (Modo Desenvolvimento)
Seção intitulada “Simulação de Papéis (Modo Desenvolvimento)”No modo desenvolvedor, você pode simular diferentes papéis sem sair da conta. Isso é útil para testar as políticas RLS:
import { useBuildEffectiveRoleController } from "@rebasepro/app";
const effectiveRoleController = useBuildEffectiveRoleController();
// When active, the UI behaves as if the current user has this roleeffectiveRoleController.setEffectiveRole("editor");Próximos Passos
Seção intitulada “Próximos Passos”- Autenticação no Backend — JWT, provedores OAuth, configuração SMTP
- Regras de Segurança (RLS) — Controle de acesso em nível de linha por coleção
- Autenticação do SDK Cliente — Métodos de autenticação programáticos
