Votre site peut avoir ses propres membres : inscription, connexion, liens magiques, rôles, pages à accès restreint et accès aux données par ligne. Les comptes visiteurs sont stockés dans la base de données propre au site et sont complètement séparés des personnes qui modifient le site.
Créer l’inscription et la connexion
Concevez les formulaires
Ajoutez des champs pour l’e-mail et le mot de passe et liez-les dans les deux sens à des variables, par exemple
vars.emailetvars.password.Ajoutez un workflow
Au clic sur le bouton, exécutez Sign up visitor ou Log in visitor avec ces variables, puis naviguez vers l’espace membres. Pour une connexion sans mot de passe, utilisez Send sign-in link.
Affichez ce qu’il faut
Liez la visibilité à
user.isLoggedIn, saluez avecuser.nameet ajoutez un bouton qui exécute Log out visitor.
Le contexte user
Chaque liaison, workflow et règle peut lire user. Un visiteur déconnecté vaut { isLoggedIn: false, id: NaN, roles: [] }, jamais null : testez donc user.isLoggedIn.
user = {
isLoggedIn: true,
id: 42,
email: "ada@example.com",
name: "Ada",
emailVerified: true,
roles: ["member"],
meta: {}
}
Vérification de l’e-mail
Une inscription par mot de passe ne prouve pas que la personne possède l’adresse : les comptes démarrent donc avec emailVerified: false. Ouvrir un lien magique le passe à true. Si ce compte avait un mot de passe, la vérification l’efface et met fin à ses sessions : quelqu’un qui s’est inscrit avec l’e-mail d’une autre personne perd l’accès dès que le vrai propriétaire se connecte par lien. Exigez la vérification là où c’est important, par exemple user.isLoggedIn && user.emailVerified.
Accès aux pages
Quand aucun élément n’est sélectionné, l’inspecteur affiche les réglages de la page. Activez Restrict et écrivez une règle d’accès, comme user.isLoggedIn ou user.roles.includes('admin'). Les visiteurs qui ne la respectent pas sont redirigés vers la page de votre choix, ou reçoivent une erreur 404.
- Les règles sont vérifiées sur le serveur à chaque requête ; les pages à accès restreint ne sont jamais servies depuis le cache partagé.
- Les requêtes client d’une page à accès restreint passent la même vérification : ses données ne peuvent pas être récupérées directement.
Rôles
Définissez les rôles dans Tables → Visitors et attribuez-les là, ou avec l’étape serveur Set visitor roles (par exemple après un paiement).