Autenticazione e Login
Panoramica
Sezione intitolata “Panoramica”Rebase fornisce componenti e hook React pronti all’uso per l’autenticazione:
useRebaseAuthController— Gestisce lo stato di autenticazione, i token e la persistenza della sessioneLoginView— Modulo di login/registrazione predefinito con supporto OAuth- Simulazione dei ruoli — Testa ruoli diversi senza disconnetterti
Controller di Autenticazione
Sezione intitolata “Controller di Autenticazione”L’hook useRebaseAuthController è il cuore dell’autenticazione frontend. Gestisce l’utente corrente, i token e la sessione:
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 callsPassa l’authController al controller di navigazione di Rebase per proteggere l’intero pannello di amministrazione dietro l’autenticazione.
Vista di Login
Sezione intitolata “Vista di Login”Il componente LoginView fornisce un modulo completo di login e registrazione:
import { LoginView } from "@rebasepro/app";
if (!authController.user) { return ( <LoginView authController={authController} googleClientId={GOOGLE_CLIENT_ID} /> );}La vista di login gestisce:
- Login e registrazione con email/password
- Accesso con Google OAuth (quando configurato)
- Flusso di reimpostazione password
- Validazione del modulo e stati di errore
Modello dei Ruoli
Sezione intitolata “Modello dei Ruoli”I ruoli sono archiviati come colonna array text[] direttamente sulla tabella rebase.users. Definisci i ruoli disponibili come enum nella definizione della tua collezione utenti:
roles: { name: "Roles", type: "array", columnType: "text[]", of: { name: "Role", type: "string", enum: { admin: "Admin", editor: "Editor", viewer: "Viewer" } }, admin: { readOnly: false }}Per aggiungere o rimuovere opzioni di ruolo, aggiorna la mappa enum nella tua collezione utenti e rigenera lo schema.
Simulazione dei Ruoli (Modalità Sviluppo)
Sezione intitolata “Simulazione dei Ruoli (Modalità Sviluppo)”In modalità sviluppatore, puoi simulare ruoli diversi senza disconnetterti. Questo è utile per testare le politiche RLS:
import { useBuildEffectiveRoleController } from "@rebasepro/app";
const effectiveRoleController = useBuildEffectiveRoleController();
// When active, the UI behaves as if the current user has this roleeffectiveRoleController.setEffectiveRole("editor");Prossimi Passi
Sezione intitolata “Prossimi Passi”- Autenticazione nel Backend — JWT, provider OAuth, configurazione SMTP
- Regole di Sicurezza (RLS) — Controllo dell’accesso a livello di riga per collezione
- Autenticazione del SDK Client — Metodi di autenticazione programmatici
