Next.js ile WebAuthn Uygulaması: Uygulamalı Bir Kılavuz
Canlı kod örnekleri ile WebAuthn'in Next.js'de uygulanmasına yönelik uygulamalı bir kılavuz.
Canlı kod örnekleri ile WebAuthn'in Next.js'de uygulanmasına yönelik uygulamalı bir kılavuz.
WebAuthn serimize tekrar hoş geldiniz. Önceki makalelerimizde WebAuthn'in temellerini ve 101 kılavuzunu ele aldık. Eğer bize yeni katılıyorsan, hızlanmak için bu temel parçaları incelemekten çekinme.
Bugün, teoriyi pratiğe dökme zamanı. Next.js'in yeni bir özelliği olan “Sunucu Eylemleri”nin gücünden yararlanacağız. Amacımız? Next.js uygulamasında WebAuthn'i uygulamak ve WebAuthn'e hazır hale gelmek.
Kod denizine dalmadan önce, yolculuğun sonundaki seni bekleyen şeye bir bakış atalım - tam işlevli bir demo web sitesi. WebAuthn'in nasıl çalıştığını görmek ve inşa edeceğin şeyin bir tadına bakmak için keşfet. Bu demo web sitesinde, yeni kullanıcılar kaydedebilir ve yeni kayıt edilen geçiş anahtarlarıyla giriş yapabilirsin.

Ve elinde bir harita olmasını tercih edenler için, seni temin ettik! Tartışacağımız tüm kodlar herkese açık bir GitHub deposunda mevcut. Bu depo, uygulamamızın tam kaynak kodunu sunarak rehberin olacak.
Bu heyecan verici maceraya çıkmaya hazır mısın? Hadi başlayalım!
Başlamadan önce, ihtiyacımız olan her şeye sahip olduğumuzdan emin olalım:
@simplewebauthn/browser, @simplewebauthn/server ve @simplewebauthn/typescript-types yüklemek için favori paket yöneticini kullan.Artık elimizde araçlarımız ve materyallerimiz var, inşa etmeye hazırız.
Bir KV depolamasını hem üretimde hem de yerel geliştirmede başlatmak kolaydır, projene bir KV deposu bağlamak ve çevre değerlerini çekmek için bu kılavuzu takip et: https://vercel.com/docs/storage/vercel-kv/quickstart
İki işlev aktardık:
getCurrentSession: Next.js çerez yardımcısını kullanarak mevcut istek için bir oturum oluşturur ve değeri döndürür.updateCurrentSession: Veriyi mevcut oturuma kaydeder.Oturum uygulamamız gibi, basit bir kullanıcı veritabanı uygulayalım.
E-posta ile kullanıcı bulmak ve kullanıcı verilerini e-posta ile güncellemek için işlevler oluşturduk. Unutma, bu sadece bir gösterimdir, gerçek bir üründe kullanıcı verileri genellikle veritabanında tutulur.
İlerlemeye başlamadan önce, kayıt ve kimlik doğrulama akışının diyagramını inceleyelim:
Gördüğün gibi, iki işlev hazırlamamız gerekiyor:
generateWebAuthnRegistrationOptionsverifyWebAuthnRegistrationKayıt gibi, giriş de 2 işlev gerektirir:
generateWebAuthnLoginOptionsverifyWebAuthnLoginİşte kod:
Hazırlığı tamamladık, sayfayı oluşturalım:
Next.js uygulamanızda WebAuthn uygulamanın karmaşıklıklarının üzerinden geçerken tebrikler. Tamamlarken, bunu üretim ortamına dağıtırken bazı önemli değerlendirmeleri ele almak önemli.
userId veya kullanıcıadı.Bu eğitici maceraya katıldığınız için teşekkür ederiz. Bu minimal örnekte bile, WebAuthn entegrasyonu basit bir görev değil, başka bir seçenek var, Logto’nun MFA’sinde WebAuthn'i deneyin: