Node.js-pohjaisen framework SDK:n luominen Logtolle minuuteissa
Opi luomaan mukautettu SDK Logtolle käyttäen `@logto/node`.
Aiemmin tässä artikkelissa loimme web-SDK:n Logtolle minuuteissa. Nyt keskitytään Node.js:ään, toiseen suosittuun JavaScript-kehittäjien alustaan.
Tässä oppaassa opastamme sinua vaihe vaiheelta luomaan yksinkertaisen Express SDK:n Logtolle käyttäen @logto/node
. Tämä SDK toteuttaa kirjautumisprosessin, ja voit seurata samoja vaiheita luodaksesi SDK:n mihin tahansa muuhun Node.js-pohjaiseen alustaan kuten Koa, Next.js, NestJS jne.
Kirjautumisprosessi
Ennen kuin aloitamme, tarkastellaan kirjautumisprosessia Logtossa. Kirjautumisprosessi koostuu seuraavista vaiheista:
- Uudelleenohjaus Logtoon: Käyttäjä ohjataan Logton kirjautumissivulle.
- Autentikointi: Käyttäjä syöttää tunnistetietonsa ja autentikoi itsensä Logtossa.
- Uudelleenohjaus takaisin sovellukseesi: Onnistuneen autentikoinnin jälkeen käyttäjä ohjataan takaisin sovellukseesi auth-koodin kanssa.
- Koodinvaihto: Sovelluksesi vaihtaa auth-koodin tokeneiksi ja tallentaa tokentit autentikointitilana.
Lyhyt esittely @logto/node
-paketista
Samoin kuin @logto/browser
, @logto/node
-paketti paljastaa LogtoClient
-luokan, joka tarjoaa Logton ydinominaisuudet, mukaan lukien menetelmät kirjautumisprosessiin:
signIn()
: Generoi OIDC-auth-URL:n ja ohjaa siihen.handleSignInCallback()
: Tarkistaa ja jäsentää takaisinsoitto-URL:n ja poimii auth-koodin, ja vaihtaa koodin tokeneiksi kutsumalla token-päätepistettä.getContext()
: Hakee nykyisen pyynnön kontekstin istuntokeksin perusteella, mukaan lukien autentikointitilan ja käyttäjätiedot.
Express SDK:n luominen
SDK:ssa tarjoamme kaksi reitin käsittelijää (/sign-in
ja /sign-in-callback
) sekä withLogto
-välimuistin:
/sign-in
: Reitinkäsittelijä, joka käynnistää kirjautumisprosessin vastauksella, joka ohjaa OIDC auth-URL:ään./sign-in-callback
: Reitinkäsittelijä, joka käsittelee takaisinsoitto-URL:n, vaihtaa auth-koodin tokeneiksi, tallentaa ne ja viimeistelee kirjautumisprosessin.withLogto
välimuisti: Välimuisti, joka kutsuugetContext()
-metodia hakemaan nykyisen pyynnön kontekstin, mukaan lukien autentikointitilan ja käyttäjätiedot.
SDK:n käyttämiseksi voit yksinkertaisesti lisätä välimuistin Express-sovellukseesi suojataksesi reittejä ja käyttää reitinkäsittelijöitä käynnistääksesi kirjautumisprosessin ja käsitelläksesi takaisinsoiton.
Vaihe 1: Asenna paketti
Asenna ensin @logto/node
-paketti käyttäen npm:ää tai muita paketin hallintatyökaluja:
Vaihe 2: Valmistele tallennusadapteri
Tallennusadapteri tarvitaan LogtoClient
-instanssin alustamiseen.
Oletetaan, että SDK:n käyttäjä on jo asettanut express-istunnon, voimme yksinkertaisesti toteuttaa Storage
-luokan luomalla uuden tiedoston storage.ts
:
Vaihe 3: Toteuta reitin käsittelijät
HTTP-pyyntö on tilaton, joten meidän on alustettava asiakasinstanssi jokaiselle pyynnölle. Valmistellaan funktion apulainen luomaan asiakasinstanssi:
Tässä funktiossa toteutamme navigate
-adapterin yhdessä ExpressStorage
-adapterin kanssa. navigate
-adapteria käytetään ohjaamaan käyttäjä kirjautumis-URL:ään.
Seuraavaksi toteutetaan reitin käsittelijät, kääritään funktioon handleAuthRoutes
:
/auth/sign-in
-reitinkäsittelijä käynnistää kirjautumisprosessin kutsumallasignIn()
, kirjautumistila tallennetaan istuntoon, ja se kulutetaan/auth/sign-in-callback
-reitinkäsittelijällä./auth/sign-in-callback
-reitinkäsittelijä käsittelee takaisinsoitto-URL:n ja vaihtaa auth-koodin tokeneiksi kutsumallahandleSignInCallback()
, tokentit tallennetaan istuntoonExpressStorage
-adapterin avulla. Vaihdon jälkeen käyttäjä ohjataan takaisin kotisivulle.
Vaihe 4: Toteuta välimuisti
withLogto
-välimuisti käytetään suojaamaan reittejä. Se kutsuu getContext()
-metodia saadakseen nykyisen pyynnön kontekstin, mukaan lukien autentikointitilan ja käyttäjätiedot.
getContext
-funktio käyttää tallennusadapteria hakemaan tokentit istunnosta.
Tarkistuspiste: SDK:n käyttäminen
Nyt kun olet luonut Express SDK:n Logtolle, voit käyttää sitä sovelluksessasi lisäämällä välimuistin suojataksesi reittejä ja käyttämällä reitinkäsittelijöitä käynnistääksesi kirjautumisprosessin ja käsitelläksesi takaisinsoiton.
Tässä on yksinkertainen esimerkki siitä, miten käyttää SDK:ta Express-sovelluksessasi:
Tässä esimerkissä käytämme withLogto
-välimuistia tarkistaaksemme autentikointitilan ja ohjaamme käyttäjän kirjautumissivulle, jos he eivät ole autentikoituja, muutoin näytämme tervetuloviestin.
Voit tarkistaa virallisen Express-esimerkkiprojektin täältä.
Johtopäätös
Tässä oppaassa olemme opastaneet sinua vaihe vaiheelta luomaan Express SDK:n Logtolle toteuttamalla perus-autentikointiprosessin. Tässä esitetty SDK on perustason esimerkki. Voit laajentaa sitä lisäämällä enemmän menetelmiä ja toimintoja sovelluksesi tarpeisiin.
Voit seurata samoja vaiheita luodaksesi SDK:n mihin tahansa muuhun JavaScript-pohjaiseen alustaan, joka toimii Node.js:ssä.
Resurssit: