MallaDocs

Cuentas de visitantes

Registro, inicio de sesión y enlaces mágicos integrados para los visitantes del sitio, con roles y reglas de acceso a páginas.

Guía de usuario

Tu sitio puede tener sus propios miembros: registro, inicio de sesión, enlaces mágicos, roles, páginas restringidas y acceso a datos por fila. Las cuentas de visitantes se guardan en la base de datos propia del sitio y están completamente separadas de las personas que editan el sitio.

RegistroEmail y contraseña, o un enlace mágico.
VerificaciónAbrir un enlace mágico verifica el email.
RestricciónLas reglas de acceso a páginas y las reglas de fila comprueban user.
RolesAsigna roles en Visitors o desde flujos de trabajo.

Construir el registro y el inicio de sesión

  1. Diseña los formularios

    Agrega inputs para el email y la contraseña y enlázalos en ambos sentidos a variables, por ejemplo vars.email y vars.password.

  2. Agrega un flujo de trabajo

    En el clic del botón, ejecuta Sign up visitor o Log in visitor con esas variables y luego navega al área de miembros. Para entrar sin contraseña, usa Send sign-in link.

  3. Muestra lo que corresponde

    Enlaza la visibilidad a user.isLoggedIn, saluda con user.name y agrega un botón que ejecute Log out visitor.

El ámbito user

Cada enlace de datos, flujo de trabajo y regla puede leer user. Un visitante sin sesión es { isLoggedIn: false, id: NaN, roles: [] }, nunca null, así que comprueba user.isLoggedIn.

js
user = {
  isLoggedIn: true,
  id: 42,
  email: "ada@example.com",
  name: "Ada",
  emailVerified: true,
  roles: ["member"],
  meta: {}
}

Verificación del email

Un registro con contraseña no prueba que alguien sea dueño de la dirección, así que las cuentas empiezan con emailVerified: false. Abrir un enlace mágico lo cambia a true. Si esa cuenta tenía contraseña, la verificación la borra y cierra sus sesiones: quien se registró con el email de otra persona pierde el acceso en cuanto el dueño real inicia sesión con el enlace. Exige la verificación donde importa, por ejemplo user.isLoggedIn && user.emailVerified.

Acceso a páginas

Sin ningún elemento seleccionado, el inspector muestra la configuración de la página. Activa Restrict y escribe una regla de acceso, como user.isLoggedIn o user.roles.includes('admin'). Los visitantes que no la cumplen se redirigen a la página que elijas, o reciben un 404.

  • Las reglas se comprueban en el servidor en cada solicitud; las páginas restringidas nunca se sirven desde la caché compartida.
  • Las consultas de cliente de una página restringida pasan la misma comprobación, así que sus datos no se pueden obtener directamente.

Roles

Define roles en Tables → Visitors y asígnalos ahí, o con el paso de servidor Set visitor roles (por ejemplo, después de un pago).