Suomi
  • nodejs
  • javascript
  • sdk
  • express

Node.js-pohjaisen framework SDK:n luominen Logtolle minuuteissa

Opi luomaan mukautettu SDK Logtolle käyttäen `@logto/node`.

Sijie
Sijie
Developer

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:

  1. Uudelleenohjaus Logtoon: Käyttäjä ohjataan Logton kirjautumissivulle.
  2. Autentikointi: Käyttäjä syöttää tunnistetietonsa ja autentikoi itsensä Logtossa.
  3. Uudelleenohjaus takaisin sovellukseesi: Onnistuneen autentikoinnin jälkeen käyttäjä ohjataan takaisin sovellukseesi auth-koodin kanssa.
  4. 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:

  1. signIn(): Generoi OIDC-auth-URL:n ja ohjaa siihen.
  2. handleSignInCallback(): Tarkistaa ja jäsentää takaisinsoitto-URL:n ja poimii auth-koodin, ja vaihtaa koodin tokeneiksi kutsumalla token-päätepistettä.
  3. 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:

  1. /sign-in: Reitinkäsittelijä, joka käynnistää kirjautumisprosessin vastauksella, joka ohjaa OIDC auth-URL:ään.
  2. /sign-in-callback: Reitinkäsittelijä, joka käsittelee takaisinsoitto-URL:n, vaihtaa auth-koodin tokeneiksi, tallentaa ne ja viimeistelee kirjautumisprosessin.
  3. withLogto välimuisti: Välimuisti, joka kutsuu getContext()-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:

  1. /auth/sign-in-reitinkäsittelijä käynnistää kirjautumisprosessin kutsumalla signIn(), kirjautumistila tallennetaan istuntoon, ja se kulutetaan /auth/sign-in-callback-reitinkäsittelijällä.
  2. /auth/sign-in-callback-reitinkäsittelijä käsittelee takaisinsoitto-URL:n ja vaihtaa auth-koodin tokeneiksi kutsumalla handleSignInCallback(), tokentit tallennetaan istuntoon ExpressStorage-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:

  1. Logto Node SDK
  2. Logto Express SDK