Kuinka toteuttaa vierastila (anonyymit käyttäjät) Logton avulla
Opi toteuttamaan vierastila Logton avulla käyttämällä kolmen vaiheen mallia: hallitse vierassessioita, tunnistaudu OIDC:n avulla ja yhdistä vierastiedot turvallisesti käyttäjätiliin.
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" toimii vain automaattisesti.
Mutta jos käytät Logtoa (tai mitä tahansa OIDC-palveluntarjoajaa) tunnistautumiseen, saatat miettiä: miten käsittelen näitä anonyymejä käyttäjiä?
Lyhyt vastaus: Logto hoitaa tunnistautumisen, sovelluksesi hoitaa vierassessiot. Ne ovat eri asioita.
Tässä artikkelissa näytän sinulle yksinkertaisen kolmen vaiheen mallin vierastilan toteuttamiseen Logtolla. Opit kuinka:
- Hallitaan vierassessioita backendissäsi
- Annetaan vieraiden rekisteröityä Logton avulla
- Yhdistetään vierastiedot oikeaan käyttäjätiliin
Miksi Logtossa ei ole "anonyymi kirjautuminen" -toimintoa
Saattaisit odottaa, että Logtossa olisi "anonyymi kirjautuminen" -ominaisuus. Jotain sellaista kuin: kutsu APIa, saat tokenin, käyttäjän ei tarvitse tehdä mitään.
Mutta näin OIDC ei toimi. Tästä syystä:
OIDC perustuu käyttäjän suostumukseen. Koko ideana on varmistaa "kuka tämä henkilö on?" Anonyymi token tarkoittaisi "joku on, mutta emme tiedä kuka" — mikä vesittäisi koko tarkoituksen.
Ajattele näin:
- Tunnistautuminen = henkilöllisyyden todistaminen ("kuka olet?")
- Sessiotracking = tekojen muistaminen ("mitä teit?")
Vierastila liittyy sessioiden seurantaan, ei tunnistautumiseen. Siksi sitä ei kuulu authentication-järjestelmään.
Tämä on itse asiassa hyvä asia. Saat selkeän erottelun:
- Logto hoitaa identiteetin (rekisteröinti, kirjautuminen, tokenit)
- Sovelluksesi hoitaa vierassessiot (ennen identiteettiä)
Anna jokaisen järjestelmän tehdä sitä, mihin se on tarkoitettu.
Kolmen vaiheen ratkaisu
Tässä perusmalli: Vieras → Auth → Yhdistä
Vaihe 1: Käsittele vierassessiot ilman autentikaatiota
Backendsi luo ja hallinnoi vierassessioita. Logto ei ole vielä mukana.
Kun käyttäjä tekee merkityksellisen toiminnon (kuten lisää ostoskoriin), backendisi:
- Luo vieras-id:n (esim. UUID)
- Palauttaa sen cookiena tai JWT:nä
- Tallentaa käyttäjän toimet tähän vieras-id:hen
Pidä homma yksinkertaisena. Taulu guest_sessions kentillä guest_id, data ja created_at riittää.
Vaihe 2: Anna käyttäjän kirjautua Logton avulla
Kun käyttäjä klikkaa "Rekisteröidy" tai "Kirjaudu", käynnistä Logton tavallinen OIDC-virta.
Vieras-id säilyy cookiessa / local storagessa tämän ajan. Onnistuneen tunnistautumisen jälkeen frontendilläsi on:
- Access token Logtolta (käyttäjän identiteetti)
- Ennen kirjautumista luotu vieras-id (vierastiedot)
Vaihe 3: Yhdistä vierastiedot autentikoituun käyttäjään turvallisesti
Nyt yhdistät pisteet. Kutsu backendisi APIa molemmilla:
Backendsi tulee validioida molemmat tokenit ennen yhdistämistä:
- Varmista access token → poimi user ID. Katso tokenin validointi Logtolla.
- Varmista guest ID → varmista että se on oikea, sinun backendisi luoma vierassessio. Tämä on kriittistä — älä koskaan luota clientin antamaan vieras-id:hen tarkistamatta sitä.
Vasta kun molemmat kelpaavat:
- Yhdistä vierastiedot käyttäjätiliin
- Mittaa vierassessio käytetyksi
Yhdistämislogiikka riippuu bisneksestäsi. Ostoskori? Yhdistä tavarat. Asiakirjaluonnokset? Siirrä omistajuus. Sinä päätät.
Näin turvaat yhdistämispisteesi tokenin validoinnilla
Yhdistämis-päätepiste on herkkä toiminto. Muista muutama seikka:
- Validoi aina access token. Älä koskaan pelkästään lue user ID:tä pyynnön bodysta. Pura ja varmista JWT. Näin teet sen Logtolla.
- Validoi aina guest ID. Tarkista että se on kannassasi ja että se ei ole vanhentunut. Jos jaoit sen JWT:nä, varmista sen allekirjoitus.
- Vaadi autentikointi. Yhdistämispisteen tulee hylätä pyynnöt ilman kelvollista access tokenia.
- Aseta TTL vierassessioille. Poista hylätyt sessiot 30 päivän jälkeen (tai oman sovelluksesi mukaan).
Yhteenveto
Vierastila Logton kanssa noudattaa yksinkertaista kaavaa:
- Vieras (sovelluksesi) → hallitse sessiot ennen käyttäjän rekisteröitymistä
- Auth (Logto) → hoitaa rekisteröinnin ja sisäänkirjautumisen
- Yhdistä (sovelluksesi) → liitä vierastiedot oikeaan käyttäjään
Tämä malli toimii minkä tahansa OIDC-palveluntarjoajan kanssa, ei vain Logton. Tärkein havainto on: tunnistautuminen ja sessioseuranta ovat eri asioita. Anna jokaisen järjestelmän tehdä sitä, mihin se on rakennettu.

