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.withLogtovä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:

