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— Form predefinito di login/registrazione con supporto OAuth- Simulazione dei ruoli — Testa ruoli diversi senza effettuare il logout
Auth Controller
Sezione intitolata “Auth Controller”L’hook useRebaseAuthController è il nucleo 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 navigation controller di Rebase per proteggere l’intero pannello di amministrazione dietro autenticazione.
Login View
Sezione intitolata “Login View”Il componente LoginView fornisce un form completo di login e registrazione:
import { LoginView } from "@rebasepro/app";
function App() { if (!authController.user) { return ( <LoginView authController={authController} googleClientId={GOOGLE_CLIENT_ID} /> ); } return <MyApp />;}La vista di login gestisce:
- Login e registrazione con email/password
- Accesso OAuth con Google, GitHub e LinkedIn (quando configurato)
- Flusso di reimpostazione della password
- Validazione del form e stati di errore
Modello dei ruoli
Sezione intitolata “Modello dei ruoli”I ruoli vengono memorizzati come colonna array text[] direttamente nella tabella rebase.users. Puoi definire i ruoli disponibili come enum nella definizione della tua collection users:
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 collection users e rigenera lo schema.
Simulazione dei ruoli (Modalità Dev)
Sezione intitolata “Simulazione dei ruoli (Modalità Dev)”In modalità sviluppatore, puoi simulare ruoli diversi senza effettuare il logout. Questo è utile per testare le policy RLS:
import { useBuildEffectiveRoleController } from "@rebasepro/app";
const effectiveRoleController = useBuildEffectiveRoleController();
// When active, the UI behaves as if the current user has this roleeffectiveRoleController.setEffectiveRole("editor");Passaggi successivi
Sezione intitolata “Passaggi successivi”- Autenticazione Backend — JWT, provider OAuth, configurazione SMTP
- Regole di sicurezza (RLS) — Controllo degli accessi a livello di riga per collection
- Autenticazione Client SDK — Metodi di autenticazione programmatici