• vierastila
  • anonyymit käyttäjät
  • käyttäjän konversio

Miten ottaa käyttöön vierastila (anonyymit käyttäjät) ja muuntaa Logto-käyttäjiksi

Opettele, miten toteutat vierastilan ja muutat vieraat Logto-käyttäjiksi kolmen vaiheen mallin avulla: hallitse vierassessioita, tunnistaudu OIDC:llä ja yhdistä vieraan tiedot käyttäjätiliin turvallisesti.

Yijun
Yijun
Developer

Lopeta viikkojen tuhlaaminen käyttäjien tunnistautumiseen
Julkaise turvallisia sovelluksia nopeammin Logtolla. Integroi käyttäjien tunnistautuminen minuuteissa ja keskity ydintuotteeseesi.
Aloita
Product screenshot

Monet sovellukset antavat käyttäjien kokeilla ominaisuuksia ennen rekisteröitymistä. Ajattele ostoskoreja, asiakirjaluonnoksia tai tallennettuja asetuksia. Käyttäjät odottavat, että tämä "vierastila" vain toimii.

Mutta jos käytät kirjautumiseen Logtoa (tai muuta OIDC-palvelua), saatat miettiä: miten käsittelen anonyymejä käyttäjiä?

Lyhyt vastaus: Logto huolehtii tunnistautumisesta, sovelluksesi vierassessioista. Ne ovat eri asioita.

Tässä artikkelissa näytän yksinkertaisen kolmen vaiheen mallin, jolla saat vierastilan toimimaan Logton kanssa. Opit:

  • Hallitsemaan vierassessioita backendissasi
  • Antamaan vieraiden rekisteröityä Logton kautta
  • Yhdistämään vieraan tiedot oikeaan käyttäjätiliin

Miksi Logtossa ei ole "anonyymikiriutumista"

Voisit odottaa, että Logtossa olisi "anonyymikiriutuminen". Jotain tyyliin: kutsu rajapintaa, saat tokenin, eikä käyttäjän tarvitse tehdä mitään.

Mutta näin OIDC ei toimi. Tässä syy:

OIDC perustuu käyttäjän suostumukseen. Sen idea on varmistaa "kuka tämä henkilö on?" Anonyymitoken tarkoittaisi "joku, mutta emme tiedä kuka" — mikä kumoaa koko tarkoituksen.

Ajattele näin:

  • Tunnistautuminen = identiteetin todistaminen ("kuka olet?")
  • Session seuraaminen = toimien muistaminen ("mitä teit?")

Vierastila liittyy session seuraamiseen, ei tunnistautumiseen. Siksi se ei kuulu kirjautumisjärjestelmääsi.

Tämä on itse asiassa hyvä uutinen. Saat selkeän jaon:

  • Logto huolehtii identiteetistä (rekisteröityminen, kirjautuminen, tokenit)
  • Sovelluksesi käsittelee vierassessiot (ennen kuin identiteetti on tiedossa)

Anna jokaisen järjestelmän hoitaa oma tehtävänsä.

Kolmen vaiheen ratkaisu

Tässä on malli: Vieras → Tunnistus → Yhdistäminen

Vaihe 1: Käsittele vierassessiot ilman kirjautumista

Backendisi luo ja hallinnoi vierassessioita. Logtoa ei tässä vaiheessa vielä tarvita.

Kun käyttäjä tekee merkityksellisen toiminnon (kuten lisää ostoskoriin), backendisi:

  1. Luo vieras-ID:n (esim. UUID)
  2. Palauttaa sen cookiena tai JWT:nä
  3. Tallentaa käyttäjän toiminnot tämän vieras-ID:n alle

Pidä se yksinkertaisena. Taulu guest_sessions, jossa on guest_id, data ja created_at, riittää.

Vaihe 2: Anna käyttäjien kirjautua Logtoon

Kun käyttäjä klikkaa "Rekisteröidy" tai "Kirjaudu sisään", käynnistä tavallinen Logto OIDC -prosessi.

Vieras-ID pysyy cookiessa/tallennuksessa tämän ajan. Onnistuneen kirjautumisen jälkeen frontendillasi on:

  • Logton access token (käyttäjän identiteetti)
  • Vieras-ID aikaisemmasta (vieraan tiedot)

Vaihe 3: Yhdistä vieraan tiedot kirjautuneeseen käyttäjään turvallisesti

Yhdistä tiedot näin: kutsu backendisi rajapintaa molemmilla tiedoilla:

Backendisi pitää tarkistaa molemmat ennen yhdistämistä:

  1. Tarkista access token → poimi käyttäjän ID. Katso Access-tokenin validointi, miten tämä tehdään Logton kanssa.
  2. Tarkista vieras-ID → varmista, että kyseessä on olemassa oleva vierassessio jonka backendisi on luonut. Tämä on kriittistä — älä ikinä luota vieras-ID:hen, joka tulee suoraan asiakkaalta ilman tarkistusta.

Vasta kun molemmat on tarkistettu:

  1. Yhdistä vieraan tiedot käyttäjätiliin
  2. Mittaa vierassessio päättyneeksi

Yhdistämisen logiikka riippuu liiketoiminnastasi. Ostoskori? Yhdistä tuotteet. Asiakirjaluonnokset? Siirrä omistajuus. Sinä päätät.

Näin suojaat yhdistämisrajapintasi token-tarkistuksella

Yhdistämisrajapinta on herkkä toiminto. Muista nämä asiat:

  • Tarkista aina access token. Älä lue käyttäjän ID:tä pelkästään request bodysta. Pura ja validoi JWT. Näin teet sen Logtolla.
  • Tarkista aina vieras-ID. Varmista, että se on tietokannassasi ja ettei se ole vanhentunut. Jos annoit sen JWT:nä, tarkista allekirjoitus.
  • Vaadi tunnistautuminen. Yhdistämisrajapinnan tulee hylätä ilman kelvollista access tokenia tehdyt pyynnöt.
  • Aseta vierassessioille voimassaoloaika. Siivoa hylätyt sessiot esim. 30 päivän jälkeen (tai mikä sopii sovellukseesi).

Yhteenveto

Vierastila Logton kanssa noudattaa yksinkertaista mallia:

  1. Vieras (sovelluksesi) → hallitse sessiot ennen käyttäjän rekisteröitymistä
  2. Tunnistus (Logto) → hoitaa kirjautumisen ja rekisteröitymisen
  3. Yhdistäminen (sovelluksesi) → liitä vieraan tiedot oikeaan käyttäjään

Tämä malli toimii minkä tahansa OIDC-palvelun kanssa, ei vain Logton. Tärkein oivallus: tunnistautuminen ja session seuraaminen ovat eri asioita. Anna jokaisen järjestelmän hoitaa sille tarkoitettu tehtävä.