Pedir a los visitantes que inicien sesión
Objetivo
Convertir un portal que cualquiera puede abrir en uno en el que el visitante inicia sesión primero, para que sus pantallas puedan mostrar a cada persona sus propios registros en lugar de la misma página a todo el mundo.
Antes de empezar
- Un portal que ya haya publicado. Consulte Publicar una aplicación como portal.
- Quien administra su instalación de Parsware ha configurado el envío de correo electrónico. Al registrarse se envía un vínculo de confirmación, y sin correo nadie puede terminar de crear una cuenta.
Pasos
- Abra su solución, elija Portales y abra el portal.
- Cambie Quién puede abrirlo de Cualquiera a Personas que inician sesión.
- Pulse Guardar.
Ese es todo el cambio. La siguiente persona que abra la dirección verá un formulario de inicio de sesión en lugar de su aplicación.
Qué ve un visitante
Un formulario de inicio de sesión, y nada de su aplicación hasta que haya iniciado sesión. Sus pantallas no se dibujan detrás: la página es el formulario.
Salvo que usted indique otra cosa, el formulario es el de la plataforma, y es deliberadamente sencillo. Si prefiere que se parezca al resto de su sitio (y mantener una página de inicio abierta a todo el mundo), puede dibujarlo usted mismo: consulte Dibujar su propia página de inicio de sesión.
Desde ese formulario, una persona puede:
- Iniciar sesión, con la dirección y la contraseña que ya tiene aquí.
- Crear una cuenta. Escribe un nombre, una dirección y una contraseña (la contraseña dos veces, para que una errata no la deje fuera de la cuenta que acaba de crear) y le enviamos un vínculo por correo electrónico. Todavía no ha iniciado sesión: abre el vínculo y después inicia sesión.
- Escribir un código, si ha activado una aplicación de autenticación. El formulario solo lo pide cuando la cuenta tiene una.
- Indicar que ha olvidado su contraseña, y recibir un vínculo para elegir una nueva. Consulte más abajo.
Un vínculo de confirmación llega a la propia dirección de su portal, no a una página aparte, y lo mismo ocurre con un vínculo de restablecimiento de contraseña. Así que, si alguien sigue uno desde su bandeja de entrada, llega a su portal con el formulario adecuado ya a la vista.
Por eso puede dibujar sin problemas una pantalla con el nombre que quiera: la plataforma no se
reserva /confirm-email, /reset-password ni ningún otro nombre.
Si alguien olvida su contraseña
Pulsa ¿Ha olvidado su contraseña? en el formulario de inicio de sesión, escribe su dirección y le enviamos un vínculo por correo electrónico. El vínculo le devuelve a su portal, le pide una contraseña nueva dos veces y después le envía a iniciar sesión con ella.
No hay nada que usted tenga que construir ni que hacer. Eso importa más en un portal que en ningún otro sitio: detrás de su portal no hay ningún servicio de soporte nuestro, y usted no puede restablecer la contraseña de un visitante por él, así que esta es su única manera de volver a entrar, y tiene que funcionar sin que haya que pedírselo a nadie.
La página responde igual haya o no una cuenta para la dirección que se escribió: «si existe una cuenta para ella, le hemos enviado un vínculo».
Es deliberado. Un formulario al que puede llegar cualquiera en internet y que dijera «aquí no hay ninguna cuenta» sería una manera de averiguar cuáles de sus clientes están registrados, dirección a dirección. El coste es que quien escribe mal su dirección espera un mensaje que nunca llegará, y por eso el texto dice si.
Al guardar la contraseña nueva ocurren dos cosas, y conviene conocer ambas:
- Terminan todas las sesiones que tenía esa cuenta, en todos los dispositivos, no solo en el que está usando. Una contraseña se restablece o porque se olvidó o porque la tiene otra persona, y esto es la respuesta al segundo caso.
- Su dirección se considera confirmada, porque el vínculo fue a su bandeja de entrada y volvió. Así que alguien que se registró, nunca abrió el mensaje de confirmación y después restableció su contraseña puede iniciar sesión.
Quien todavía sabe su contraseña y simplemente quiere otra usa la misma vía: en un portal no hay «cambiar mi contraseña».
Si invitan a alguien a una empresa
Una cuenta del portal puede pertenecer a una empresa, y a alguien se le incorpora a una invitándole. El mensaje lleva un vínculo, y en su portal ese vínculo llega a la puerta de entrada, la misma dirección que un vínculo de confirmación y un vínculo de restablecimiento de contraseña. Su portal se encarga:
- Alguien que ya ha iniciado sesión se une de inmediato, y se le indica a qué empresa se ha unido.
- Alguien que no ha iniciado sesión ve el formulario de inicio de sesión con Le han invitado encima. Inicia sesión (o crea una cuenta y confirma antes su dirección) y la invitación sigue esperando cuando vuelve. Nunca tiene que volver a buscar el mensaje.
Unirse cambia lo que responden sus pantallas de inmediato: la sesión se vuelve a emitir para la
empresa a la que acaba de unirse, así que portalCustomerId() la devuelve en la siguiente lectura.
A quien haya iniciado sesión con cualquier otra cuenta se le indica para qué dirección era, y se le ofrece una manera de cerrar sesión y volver con esa cuenta.
Eso es lo que impide que un mensaje reenviado sea una manera de entrar en una empresa a la que nadie invitó a quien lo lee, y reenviar un mensaje es exactamente lo que la gente hace con todo lo que parece una tarea pendiente.
El Propietario de una empresa invita a sus compañeros desde una pantalla que dibuja usted: un
cuadro de texto, un botón e invitePerson(...). Dentro de la plataforma no hay ninguna página de
personas, y la invitación en sí no es una operación sobre registros: es una de las seis llamadas que
proporciona la plataforma porque ninguna API personalizada podría hacerlas. Consulte
Permitir que los visitantes gestionen su propia empresa.
Qué pueden hacer sus pantallas cuando alguien ha iniciado sesión
Mostrar quién es. Un texto enlazado a user.name o user.email muestra a la persona que ha
iniciado sesión, exactamente igual que en una aplicación dentro de la plataforma. Una imagen
enlazada a user.photo muestra su foto si tiene una. El mismo dibujo funciona en los dos sitios: no
tiene que dibujar una versión para el portal.
Permitirle cerrar sesión. Un botón cuya acción es Cerrar sesión termina la sesión y le devuelve a la puerta de entrada de su portal. En un portal que cualquiera puede abrir, ese botón informa de un problema, porque no hay ninguna sesión que cerrar.
Mostrar a cada persona sus propios registros. Para esto sirve iniciar sesión, y ocurre en su API personalizada, no en la pantalla. Cuando un visitante que ha iniciado sesión carga una pantalla, su identidad viaja con la solicitud, y el script de su API puede leerla:
// Who is asking — read from their signed-in session, never from the request.
var customerId = portalCustomerId();
// Only the orders belonging to the company they are a member of.
var rows = runQuery({
entity: 'par_order',
select: ['par_name', 'par_placed_on', 'par_amount'],
filter: { connector: 'And', conditions: [
{ field: 'par_customer', operator: 'Equals', value: customerId }
] }
});
setOutput('rows', rows);
setOutput('total', rows.length());
portalCustomerId() lee la empresa de la propia sesión del visitante. La página no tiene manera de
enviarle otra, y eso es lo que mantiene a un cliente fuera de los registros de otro.
Una API que no filtra devuelve todas las filas a todos los visitantes que han iniciado sesión. Que alguien inicie sesión le dice quién es; no acota lo que devuelve su script.
Escriba el filtro en el script, y vuelva a leerlo antes de marcar Publicado.
Quién puede crear una cuenta
Cualquiera que pueda llegar a la dirección. Iniciar sesión no es lo mismo que ser invitado: el formulario tiene un vínculo Crear una cuenta, y quien lo usa obtiene una cuenta sin ninguna empresa asociada.
Lo que esa cuenta puede ver después es lo que respondan sus API personalizadas para alguien sin empresa, que, si sus scripts filtran como en el ejemplo anterior, es nada. Es el valor predeterminado correcto: un desconocido con cuenta sigue siendo un desconocido.
Obtiene una empresa creando una o siendo invitado a una, y ambas cosas ocurren en pantallas que usted dibuja: consulte Permitir que los visitantes gestionen su propia empresa.
Volver a desactivarlo
Vuelva a cambiar Quién puede abrirlo a Cualquiera y guarde. La dirección vuelve a abrir directamente su aplicación, y cualquier sesión que tuviera alguien deja de contar de inmediato: nada sigue respetando un inicio de sesión antiguo en un portal que ya no tiene ninguno.
Las cuentas en sí no se eliminan. Puede verlas en Usuarios del portal.
Permitirles cambiar cosas
Iniciar sesión es lo que hace posible escribir: un visitante puede crear, cambiar y eliminar registros cuando usted agrega una fila para cada operación en Qué puede leer. Consulte Permitir que los visitantes guarden cambios.