MallaDocs

Comptes visiteurs

Inscription, connexion et liens magiques intégrés pour les visiteurs du site, rôles et règles d’accès aux pages.

Guide utilisateur

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.

InscriptionE-mail et mot de passe, ou un lien magique.
VérificationOuvrir un lien magique vérifie l’adresse e-mail.
ProtectionLes règles d’accès aux pages et les règles de ligne vérifient user.
RôlesAttribuez des rôles dans Visitors ou depuis des workflows.

Créer l’inscription et la connexion

  1. 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.email et vars.password.

  2. 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.

  3. Affichez ce qu’il faut

    Liez la visibilité à user.isLoggedIn, saluez avec user.name et 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.

js
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).