RequireSession
Ce qui se trouve derrière une session valide.
Chaque application l'écrit, presque toujours de la même façon, à la cible de redirection près. Elle ne dépend d'aucun routeur : elle rend un état et prévient, l'application décide où aller.
Ceci protège l'interface, pas les données. Une route masquée reste une route ouverte tant que le serveur ne refuse pas l'appel.
Installation
bash
sia-ui add require-sessionOu par le paquet, sans rien copier :
tsx
import { RequireSession, Can } from "@sia-ui/react-web";Props de RequireSession
| Prop | Type | Défaut | Description |
|---|---|---|---|
* session | SessionStore<TUser, TTenant, TRule> | — | |
allowIncomplete | boolean | false | Laisse passer une session incomplete — profil pas encore rempli. |
className | string | — | |
fallback | ReactNode | null | Rendu quand il n'y a pas de session. |
forbidden | ReactNode | null | Rendu quand la session existe mais que les droits manquent. |
onForbidden | (state: SessionState<TUser, TTenant>) => void | — | |
onIncomplete | (state: SessionState<TUser, TTenant>) => void | — | |
onUnauthenticated | (state: SessionState<TUser, TTenant>) => void | — | Appelé une fois quand la vérification conclut à l'absence de session. C'est ici que l'application navigue : navigate("/login"), router.push(…), ou rien du tout si fallback suffit. La garde ne connaît aucun routeur. |
pending | ReactNode | — | Affiché pendant la vérification. Ce rendu est ce qui distingue cette garde d'un if (!user) redirect : tant que le serveur n'a pas répondu, on attend. Rediriger pendant la vérification renvoie à la page de connexion quelqu'un qui est connecté. |
require | TRule | — | La règle de droits exigée, s'il y en a une. |
spinnerProps | SpinnerProps | — | Les props du Spinner d'attente par défaut — taille, variante, libellé lu par les lecteurs d'écran. Sans effet quand pending est fourni. |
Props de Can
Un morceau d'interface derrière un droit.
PermissionGate fait la même chose à partir d'un tableau de permissions passé à la main; celui-ci lit la session et suit son évaluateur — jokers, expression textuelle ou égalité stricte selon le serveur.
| Prop | Type | Défaut | Description |
|---|---|---|---|
* require | TRule | — | |
* session | SessionStore<TUser, TTenant, TRule> | — | |
fallback | ReactNode | null |
* obligatoire.
Voir aussi
- Le composant dans le catalogue — états, variantes, et bac à sable.
- La référence complète — tous les composants.