WebAuthn:n toteuttaminen Next.js:ssä: Käytännön opas
Käytännön opas WebAuthn:n toteuttamiseen Next.js:ssä elävien koodiesimerkkien avulla.
Käytännön opas WebAuthn:n toteuttamiseen Next.js:ssä elävien koodiesimerkkien avulla.
Tervetuloa takaisin WebAuthn-sarjaamme. Aiemmissa artikkeleissamme olemme käsitelleet WebAuthnin perusteita ja 101 opasta. Jos liityt mukaan vasta nyt, voit katsoa nämä perustavanlaatuiset osat päästäksesi ajan tasalle.
Tänään käärimme hihat ja laitamme teorian käytäntöön. Hyödynnämme Next.js:n voimaa uuden "Server Actions"-ominaisuuden avulla. Tavoitteemme? Toteuttaa WebAuthn Next.js-sovelluksessa ja valmistautua WebAuthniin.
Ennen kuin sukellamme koodin maailmaan, tässä on katsaus siihen, mitä odottaa matkan päässä - täysin toimiva demo-sivusto. Tutustu siihen nähdäksesi WebAuthnin toiminnassa ja saadaksesi maistaa siitä, mitä olet rakentamassa. Tässä demo-sivustossa voit rekisteröidä uusia käyttäjiä ja kirjautua juuri rekisteröidyillä pääsyavaimilla.

Ja niille, jotka pitävät kartasta kädessään, olemme turvanasi! Kaikki koodi, jota käsittelemme, on saatavilla julkisessa GitHub-repositoriossa. Tämä repositorio on kumppanioppaasi, joka tarjoaa koko lähdekoodin toteutuksestamme.
Valmis lähtemään tälle jännittävälle seikkailulle? Aloitetaan!
Ennen kuin aloitamme, varmistetaan, että meillä on kaikki tarvittava:
@simplewebauthn/browser, @simplewebauthn/server ja @simplewebauthn/typescript-typesNyt kun työkalut ja materiaalit ovat käsillä, olemme valmiita aloittamaan rakentamisen.
On helppoa alustaa KV-tallennus sekä tuotannossa että paikallisessa kehityksessä, noudata tätä ohjetta liittääksesi KV-kauppa projektiisi ja vetääksesi ympäristöarvot: https://vercel.com/docs/storage/vercel-kv/quickstart
Veimme ulos 2 funktiota:
getCurrentSession: Käytä Next.js:n evästeavustajaa luomaan istunto nykyiselle pyynnölle ja palauttamaan arvo.updateCurrentSession: Tallenna tiedot nykyiseen istuntoon.Samoin kuin istuntojen toteutuksessa, toteutetaan yksinkertainen käyttäjätietokanta.
Luoimme funktioita käyttäjän löytämiseksi sähköpostin perusteella ja käyttäjätietojen päivittämiseen sähköpostin perusteella. Muista, että tämä on vain esittelytarkoituksiin, oikeassa tuotteessa käyttäjätiedot pidetään yleensä tietokannassa.
Ennen kuin jatkamme, katsotaan rekisteröinnin ja todennuksen kulun kaaviota:
Kuten näet, meidän on valmistettava 2 funktiota:
generateWebAuthnRegistrationOptionsverifyWebAuthnRegistrationRekisteröinnin tavoin kirjautumiseen tarvitaan 2 funktiota:
generateWebAuthnLoginOptionsverifyWebAuthnLoginTässä on koodi:
Olemme suorittaneet valmistelut, rakennetaan sivu:
Onnittelut navigoitua WebAuthnin toteutuksen monimutkaisuuksien läpi Next.js-sovelluksessa. Kun lopetamme, on tärkeää käsitellä joitain keskeisiä näkökohtia sen käyttöönotosta tuotantoympäristössä.
userId tai username.Kiitos, että liityit tämän opettavan seikkailun pariin. Vaikka tämä minimaalinen esimerkki olisi, WebAuthnin integrointi ei ole yksinkertainen tehtävä, on toinen vaihtoehto, kokeile WebAuthnia Logton MFA:ssa: