Aller au contenu principal

Demander aux visiteurs de se connecter

Objectif​

Transformer un portail que tout le monde peut ouvrir en un portail où le visiteur se connecte d’abord, afin que vos écrans puissent montrer à chacun ses propres enregistrements plutôt que la même page à tout le monde.

Avant de commencer​

  • Un portail que vous avez déjà publié. Voir Publier une application en tant que portail.
  • La personne qui gère votre installation Parsware a configuré l’envoi d’e-mails. L’inscription envoie un lien de confirmation, et sans e-mail personne ne peut terminer la création d’un compte.

Étapes​

  1. Ouvrez votre solution, choisissez Portails, puis ouvrez le portail.
  2. Dans Qui peut l’ouvrir, remplacez Tout le monde par Les personnes qui se connectent.
  3. Appuyez sur Enregistrer.

C’est tout le changement. La prochaine personne qui ouvre l’adresse obtient un formulaire de connexion au lieu de votre application.

Ce que voit un visiteur​

Un formulaire de connexion, et rien de votre application tant qu’il ne s’est pas connecté. Vos écrans ne sont pas dessinés derrière — la page, c’est le formulaire.

Sauf indication contraire de votre part, le formulaire est celui de la plateforme, volontairement sobre. Si vous préférez qu’il ressemble au reste de votre site — et garder une page d’accueil ouverte à tous — vous pouvez le dessiner vous-même : voir Dessiner votre propre page de connexion.

Depuis ce formulaire, une personne peut :

  • Se connecter, avec l’adresse et le mot de passe qu’elle a déjà ici.
  • Créer un compte. Elle saisit un nom, une adresse et un mot de passe — le mot de passe deux fois, pour qu’une faute de frappe ne puisse pas lui interdire l’accès au compte qu’elle vient de créer — et nous lui envoyons un lien par e-mail. Elle n’est pas encore connectée — elle ouvre le lien, puis se connecte.
  • Saisir un code, si elle a activé une application d’authentification. Le formulaire ne le demande que lorsque le compte en possède une.
  • Indiquer qu’elle a oublié son mot de passe, et recevoir un lien pour en choisir un nouveau. Voir plus bas.
Le lien ramène à l’entrée de votre portail

Un lien de confirmation arrive à l’adresse propre de votre portail, pas sur une page distincte — et il en va de même pour un lien de réinitialisation de mot de passe. Ainsi, quelqu’un qui en suit un depuis sa boîte de réception arrive sur votre portail avec le bon formulaire déjà affiché.

C’est pourquoi vous pouvez sans risque dessiner un écran portant le nom que vous voulez — la plateforme ne se réserve ni /confirm-email, ni /reset-password, ni aucun autre nom.

Si quelqu’un oublie son mot de passe​

La personne appuie sur Mot de passe oublié ? dans le formulaire de connexion, indique son adresse, et nous lui envoyons un lien par e-mail. Le lien la ramène sur votre portail, lui demande deux fois un nouveau mot de passe, puis l’envoie se connecter avec.

Vous n’avez rien à construire ni rien à faire. Cela compte davantage sur un portail que partout ailleurs : votre portail n’a derrière lui aucun support de notre part, et vous ne pouvez pas réinitialiser le mot de passe d’un visiteur à sa place — c’est donc son seul moyen de revenir, et cela doit fonctionner sans que personne n’ait à être sollicité.

Nous ne disons jamais si une adresse a un compte

La page répond de la même façon qu’il existe ou non un compte pour l’adresse saisie : « si un compte existe pour cette adresse, un lien est en route. »

C’est voulu. Un formulaire accessible à n’importe qui sur Internet et qui répondrait « aucun compte ici » serait un moyen de découvrir lesquels de vos clients sont inscrits — une adresse à la fois. Le prix à payer, c’est qu’une personne qui se trompe dans son adresse attend un message qui n’arrivera jamais, et c’est pourquoi la formulation dit si.

Deux choses se produisent lorsqu’elle enregistre le nouveau mot de passe, et toutes deux méritent d’être connues :

  • Toutes les sessions de ce compte prennent fin — sur tous les appareils, pas seulement celui qu’elle utilise. Un mot de passe est réinitialisé soit parce qu’il a été oublié, soit parce que quelqu’un d’autre le connaît, et c’est la réponse au second cas.
  • Son adresse est considérée comme confirmée, puisque le lien est allé dans sa boîte de réception et en est revenu. Ainsi, quelqu’un qui s’est inscrit, n’a jamais ouvert le message de confirmation, puis a réinitialisé son mot de passe peut se connecter.

Quelqu’un qui connaît encore son mot de passe et en veut simplement un autre passe par le même chemin : il n’y a pas de « changer mon mot de passe » sur un portail.

Si quelqu’un est invité dans une entreprise​

Un compte de portail peut appartenir à une entreprise, et on y entre en y étant invité. Le message contient un lien, et sur votre portail ce lien arrive à l’entrée — la même adresse qu’un lien de confirmation ou de réinitialisation de mot de passe. Votre portail s’en charge :

  • Une personne déjà connectée rejoint immédiatement l’entreprise, et on lui indique laquelle elle a rejointe.
  • Une personne qui n’est pas connectée voit le formulaire de connexion surmonté de Vous avez été invité. Elle se connecte — ou crée un compte et confirme d’abord son adresse — et l’invitation l’attend toujours à son retour. Elle n’a jamais à retrouver le message.

Rejoindre une entreprise change immédiatement ce que répondent vos écrans : la session est réémise pour l’entreprise qu’elle vient de rejoindre, et portalCustomerId() la renvoie dès la lecture suivante.

Une invitation ne fonctionne que pour l’adresse à laquelle elle a été envoyée

Une personne connectée sous un autre compte se voit indiquer l’adresse à laquelle l’invitation était destinée, et se voit proposer un moyen de se déconnecter pour revenir avec ce compte.

C’est ce qui empêche un message transféré de devenir une porte d’entrée dans une entreprise où personne n’a invité son lecteur — et transférer un message, c’est exactement ce que l’on fait de tout ce qui ressemble à une tâche à accomplir.

L’invitation, c’est vous qui la dessinez, et l’appel appartient à la plateforme

Le Propriétaire d’une entreprise invite ses collègues depuis un écran que vous dessinez : une zone de texte, un bouton et invitePerson(...). Il n’y a pas de page Personnes dans la plateforme, et l’invitation elle-même n’est pas une opération sur un enregistrement — c’est l’un des six appels que fournit la plateforme parce qu’aucune API personnalisée ne pourrait les faire. Voir Permettre aux visiteurs de gérer leur propre entreprise.

Ce que vos écrans peuvent faire une fois la personne connectée​

Montrer qui elle est. Une légende liée à user.name ou user.email affiche la personne connectée, exactement comme dans une application à l’intérieur de la plateforme. Une image liée à user.photo affiche sa photo si elle en a une. Le même dessin fonctionne aux deux endroits — vous ne dessinez pas de version pour le portail.

La laisser se déconnecter. Un bouton dont l’action est Se déconnecter met fin à la session et la ramène à l’entrée de votre portail. Sur un portail que tout le monde peut ouvrir, ce bouton signale plutôt un problème, car il n’y a rien dont se déconnecter.

Montrer à chacun ses propres enregistrements. C’est tout l’intérêt de la connexion, et cela se passe dans votre API personnalisée, pas sur l’écran. Lorsqu’un visiteur connecté charge un écran, son identité voyage avec la requête, et le script de votre API peut la lire :

// 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() lit l’entreprise dans la session propre du visiteur. La page n’a aucun moyen de vous en envoyer une autre, et c’est ce qui tient chaque client à l’écart des enregistrements d’un autre.

Le filtre, c’est à vous de l’écrire, et rien ne vérifie que vous l’avez écrit

Une API qui ne filtre pas renvoie toutes les lignes à tous les visiteurs connectés. Connecter quelqu’un vous dit qui il est ; cela ne restreint pas ce que renvoie votre script.

Écrivez le filtre dans le script, et relisez-le avant de cocher Publié.

Qui peut créer un compte​

Quiconque peut atteindre l’adresse. Se connecter n’est pas la même chose qu’être invité : le formulaire comporte un lien Créer un compte, et la personne qui l’utilise obtient un compte auquel aucune entreprise n’est rattachée.

Ce que ce compte peut ensuite voir, c’est ce que vos API personnalisées répondent à quelqu’un sans entreprise — c’est-à-dire rien, si vos scripts filtrent comme l’exemple ci-dessus. C’est le bon comportement par défaut : un inconnu qui a un compte reste un inconnu.

Il obtient une entreprise en en créant une ou en y étant invité, deux choses qui se passent sur des écrans que vous dessinez : voir Permettre aux visiteurs de gérer leur propre entreprise.

Revenir en arrière​

Remettez Qui peut l’ouvrir sur Tout le monde et enregistrez. L’adresse ouvre de nouveau directement votre application, et toute session ouverte cesse immédiatement de compter — rien ne continue d’honorer une ancienne connexion sur un portail qui n’en a plus.

Les comptes eux-mêmes ne sont pas supprimés. Vous les trouvez sous Utilisateurs du portail.

Leur permettre de modifier des choses​

C’est la connexion qui rend l’écriture possible : un visiteur peut créer, modifier et supprimer des enregistrements dès que vous ajoutez une ligne pour chacun dans Ce qu’il peut lire. Voir Permettre aux visiteurs d’enregistrer des modifications.

Voir aussi​