Naar hoofdinhoud gaan

Bezoekers vragen zich aan te melden

Doel​

Verander een portal die iedereen kan openen in een portal waarop een bezoeker zich eerst aanmeldt, zodat je schermen iedereen zijn eigen records kunnen tonen in plaats van iedereen dezelfde pagina.

Voordat je begint​

  • Een portal die je al hebt gepubliceerd. Zie Een app publiceren als portal.
  • Iemand die je Parsware-installatie beheert, heeft e-mail versturen ingericht. Wie zich registreert, krijgt een bevestigingslink, en zonder e-mail kan niemand het aanmaken van een account afronden.

Stappen​

  1. Open je oplossing, kies Portals en open de portal.
  2. Zet Wie kan het openen van Iedereen op Mensen die zich aanmelden.
  3. Druk op Opslaan.

Dat is de hele wijziging. De volgende die het adres opent, krijgt een aanmeldformulier in plaats van je app.

Wat een bezoeker ziet​

Een aanmeldformulier, en niets van je app totdat hij zich heeft aangemeld. Je schermen worden er niet achter getekend — de pagina ís het formulier.

Tenzij je anders aangeeft, is het formulier dat van het platform, en bewust eenvoudig. Wil je liever dat het eruitziet als de rest van je site — en een landingspagina voor iedereen open houden — dan kun je het zelf tekenen: zie Je eigen aanmeldpagina tekenen.

Vanuit dat formulier kan iemand:

  • Zich aanmelden, met het adres en wachtwoord die hij hier al heeft.
  • Een account maken. Hij vult een naam, een adres en een wachtwoord in — het wachtwoord twee keer, zodat een typfout hem niet buitensluit van het account dat hij net heeft gemaakt — en we sturen hem een link per e-mail. Hij is dan nog niet aangemeld — hij opent de link en meldt zich daarna aan.
  • Een code invoeren, als hij een authenticator-app heeft ingeschakeld. Het formulier vraagt er alleen om als het account er een heeft.
  • Aangeven dat hij zijn wachtwoord is vergeten, en een link krijgen om een nieuw te kiezen. Zie hieronder.
De link komt terug bij de voordeur van je portal

Een bevestigingslink komt uit op het eigen adres van je portal, niet op een aparte pagina — en een link om je wachtwoord opnieuw in te stellen ook. Volgt iemand er een vanuit zijn inbox, dan komt hij op je portal aan met het juiste formulier al in beeld.

Daarom kun je veilig een scherm tekenen met welke naam je maar wilt — het platform reserveert /confirm-email, /reset-password of welke andere naam dan ook niet voor zichzelf.

Als iemand zijn wachtwoord vergeet​

Hij drukt op Wachtwoord vergeten? op het aanmeldformulier, geeft zijn adres op, en we sturen hem een link per e-mail. De link brengt hem terug naar je portal, vraagt twee keer om een nieuw wachtwoord en stuurt hem daarna door om zich daarmee aan te melden.

Jij hoeft niets te bouwen en niets te doen. Dat is op een portal belangrijker dan waar ook: achter je portal zit geen helpdesk van ons, en je kunt het wachtwoord van een bezoeker niet voor hem opnieuw instellen — dit is dus zijn enige weg terug, en die moet werken zonder dat iemand iets gevraagd hoeft te worden.

We zeggen nooit of er een account bij een adres hoort

De pagina antwoordt hetzelfde, of er nu wel of geen account is voor het adres dat iemand typte: "als er een account voor bestaat, is er een link onderweg."

Dat is bewust zo. Een formulier dat iedereen op internet kan bereiken en dat "hier is geen account" zou zeggen, zou een manier zijn om te achterhalen welke van je klanten geregistreerd zijn — adres voor adres. De prijs is dat iemand die zijn adres verkeerd typt, wacht op een bericht dat nooit komt; daarom staat er in de tekst als.

Er gebeuren twee dingen wanneer hij het nieuwe wachtwoord opslaat, en het is goed om beide te kennen:

  • Elke sessie van dat account wordt beëindigd — op elk apparaat, niet alleen op het apparaat dat hij gebruikt. Een wachtwoord wordt opnieuw ingesteld omdat het is vergeten of omdat iemand anders het heeft, en dit is het antwoord op het tweede geval.
  • Zijn adres geldt als bevestigd, omdat de link naar zijn inbox ging en terugkwam. Iemand die zich heeft geregistreerd, het bevestigingsbericht nooit heeft geopend en daarna zijn wachtwoord opnieuw heeft ingesteld, kan zich dus aanmelden.

Iemand die zijn wachtwoord nog weet en gewoon een ander wil, gebruikt dezelfde route: er is geen "wachtwoord wijzigen" op een portal.

Als iemand wordt uitgenodigd voor een bedrijf​

Een portalaccount kan bij een bedrijf horen, en iemand komt erin door te worden uitgenodigd. Het bericht bevat een link, en op je portal komt die link uit bij de voordeur — hetzelfde adres als een bevestigingslink en een link om het wachtwoord opnieuw in te stellen. Je portal handelt het af:

  • Iemand die al is aangemeld, wordt direct lid en krijgt te horen bij welk bedrijf.
  • Iemand die niet is aangemeld, ziet het aanmeldformulier met Je bent uitgenodigd erboven. Hij meldt zich aan — of maakt een account en bevestigt eerst zijn adres — en de uitnodiging staat nog klaar als hij terugkomt. Hij hoeft het bericht nooit opnieuw op te zoeken.

Lid worden verandert direct wat je schermen antwoorden: de sessie wordt opnieuw uitgegeven voor het bedrijf waar hij net lid van is geworden, dus portalCustomerId() geeft dat bedrijf al bij de eerstvolgende leesactie terug.

Een uitnodiging werkt alleen voor het adres waarnaar hij is gestuurd

Wie als iemand anders is aangemeld, krijgt te horen voor welk adres de uitnodiging was, en wordt de mogelijkheid geboden zich af te melden en terug te komen als dat account.

Dat voorkomt dat een doorgestuurd bericht een weg wordt naar een bedrijf waar niemand de lezer voor heeft uitgenodigd — en doorsturen is precies wat mensen doen met alles wat eruitziet als een actiepunt.

Het uitnodigen teken jij, de aanroep komt van het platform

De eigenaar van een bedrijf nodigt collega's uit vanaf een scherm dat jij tekent: een tekstvak, een knop en invitePerson(...). Er is geen pagina Personen binnen het platform, en de uitnodiging zelf is geen recordbewerking — het is een van de zes aanroepen die het platform levert omdat geen aangepaste API ze zou kunnen doen. Zie Bezoekers hun eigen bedrijf laten beheren.

Wat je schermen kunnen doen zodra iemand is aangemeld​

Laten zien wie hij is. Een bijschrift gekoppeld aan user.name of user.email toont de aangemelde persoon, precies zoals in een app binnen het platform. Een afbeelding gekoppeld aan user.photo toont zijn foto als hij er een heeft. Dezelfde tekening werkt op beide plekken — je tekent geen aparte portalversie.

Hem laten afmelden. Een knop met de actie Afmelden beëindigt de sessie en brengt hem terug naar de voordeur van je portal. Op een portal die iedereen kan openen, meldt die knop in plaats daarvan een probleem, want er valt niets af te melden.

Iedereen zijn eigen records tonen. Daar draait aanmelden om, en het gebeurt in je aangepaste API, niet op het scherm. Wanneer een aangemelde bezoeker een scherm laadt, reist zijn identiteit mee met de aanvraag, en het script van je API kan die lezen:

// 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() leest het bedrijf uit de eigen sessie van de bezoeker. De pagina kan je op geen enkele manier een ander bedrijf sturen, en dat houdt de ene klant weg uit de records van de andere.

Het filter schrijf jij, en niets controleert of je het hebt geschreven

Een API die niet filtert, geeft elke rij aan elke aangemelde bezoeker. Iemand aanmelden vertelt je wie hij is; het beperkt niet wat je script teruggeeft.

Schrijf het filter in het script, en lees het nog een keer na voordat je Gepubliceerd aanvinkt.

Wie een account kan maken​

Iedereen die het adres kan bereiken. Aangemeld zijn is niet hetzelfde als uitgenodigd zijn: het formulier heeft een link Een account maken, en wie die gebruikt, krijgt een account zonder gekoppeld bedrijf.

Wat dat account vervolgens kan zien, is wat je aangepaste API's antwoorden voor iemand zonder bedrijf — en als je scripts filteren zoals in het voorbeeld hierboven, is dat niets. Dat is de juiste standaard: een onbekende met een account is nog steeds een onbekende.

Hij krijgt een bedrijf door er een op te richten of door er voor uitgenodigd te worden; beide gebeuren op schermen die jij tekent: zie Bezoekers hun eigen bedrijf laten beheren.

Het weer uitzetten​

Zet Wie kan het openen terug op Iedereen en sla op. Het adres opent weer direct je app, en elke sessie die iemand had, telt direct niet meer — niets blijft een oude aanmelding honoreren op een portal die geen aanmelding meer kent.

De accounts zelf worden niet verwijderd. Je ziet ze onder Portalgebruikers.

Ze dingen laten wijzigen​

Aanmelden maakt schrijven mogelijk: een bezoeker kan records maken, wijzigen en verwijderen zodra je voor elk daarvan een rij toevoegt aan Wat het kan lezen. Zie Bezoekers wijzigingen laten opslaan.

Gerelateerd​