Skip to content

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-session

Ou par le paquet, sans rien copier :

tsx
import { RequireSession, Can } from "@sia-ui/react-web";

Props de RequireSession ​

PropTypeDéfautDescription
* sessionSessionStore<TUser, TTenant, TRule>—
allowIncompletebooleanfalseLaisse passer une session incomplete — profil pas encore rempli.
classNamestring—
fallbackReactNodenullRendu quand il n'y a pas de session.
forbiddenReactNodenullRendu 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.
pendingReactNode—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é.
requireTRule—La règle de droits exigée, s'il y en a une.
spinnerPropsSpinnerProps—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.

PropTypeDéfautDescription
* requireTRule—
* sessionSessionStore<TUser, TTenant, TRule>—
fallbackReactNodenull

* obligatoire.

Voir aussi ​

Publié sous licence MIT.