Dakikalar İçinde Node.js Tabanlı Bir Çerçeve SDK'sı Olarak Logto İnşa Etmek
`@logto/node` kullanarak Logto için özel bir SDK oluşturmayı öğrenin.
Daha önce bu makalede dakikalar içinde Logto için bir web SDK'sı oluşturduk. Şimdi, JavaScript geliştiricileri arasında popüler bir başka platform olan Node.js'e odaklanalım.
Bu rehberde, @logto/node
kullanarak Logto için basit bir Express SDK'sı oluşturma adımlarını size anlatacağız. Bu SDK, oturum açma akışını uygulayacak ve aynı adımları takip ederek Koa, Next.js, NestJS gibi diğer Node.js tabanlı platformlar için SDK oluşturabilirsiniz.
Oturum Açma Akışı
Başlamadan önce, Logto'daki oturum açma akışını gözden geçirelim. Oturum açma akışı şu adımlardan oluşur:
- Logto'ya Yönlendirme: Kullanıcı, Logto oturum açma sayfasına yönlendirilir.
- Kimlik Doğrulama: Kullanıcı, kimlik bilgilerini girer ve Logto ile kimlik doğrulaması yapar.
- Uygulamanıza Geri Yönlendirme: Başarılı kimlik doğrulamasının ardından kullanıcı, bir auth kodu ile uygulamanıza geri yönlendirilir.
- Kod Değişimi: Uygulamanız auth kodunu tokenler için değiştirir ve bu tokenleri kimlik doğrulama durumu olarak saklar.
@logto/node
'a Kısa Bir Giriş
@logto/browser
'a benzer şekilde, @logto/node
paketi, oturum açma akışı yöntemleri de dahil olmak üzere Logto'nun temel işlevlerini sağlayan bir LogtoClient
sınıfını sunar:
signIn()
: OIDC yetkilendirme URL'sini oluşturur ve buna yönlendirir.handleSignInCallback()
: Geri çağırma URL'sini kontrol eder ve auth kodunu çıkarır, ardından token endpoint'ini çağırarak bu kodu tokenlerle değiştirir.getContext()
: Oturum çerezi baz alınarak mevcut isteğin bağlamını, kimlik doğrulama durumu ve kullanıcı bilgisi dahil, alır.
Express SDK'sı Oluşturmak
SDK'da withLogto
ara yazılımıyla birlikte iki yol işleyicisi (/sign-in
ve /sign-in-callback
) sağlayacağız:
/sign-in
: OIDC yetkilendirme URL'sine yönlendiren yanıtla oturum açma akışını başlatan bir yol işleyici./sign-in-callback
: Geri çağırma URL'sini işleyen, auth kodunu tokenlerle değiştiren, bunları saklayan ve oturum açma akışını tamamlayan bir yol işleyici.withLogto
ara yazılımı: Mevcut isteğin bağlamını, kimlik doğrulama durumu ve kullanıcı bilgisi dahil, almak içingetContext()
fonksiyonunu çağıran bir ara yazılım.
SDK'yı kullanmak için Express uygulamanıza ara yazılımı ekleyebilir, yolları korumak ve oturum açma akışını başlatmak ve geri çağırmayı işlemek için yol işleyicilerini kullanabilirsiniz.
Adım 1: Paketi Yükleyin
İlk olarak, @logto/node
paketini npm veya diğer paket yöneticilerini kullanarak yükleyin:
Adım 2: Depolama Adaptörünü Hazırlayın
LogtoClient
örneğini başlatmak için bir depolama adaptörü gereklidir.
SDK kullanıcısının zaten express oturumu kurduğunu varsayarak, storage.ts
adında yeni bir dosya oluşturarak Storage
sınıfını basitçe uygulayabiliriz:
Adım 3: Yol İşleyicilerini Uygulamak
HTTP isteği durumsuzdur, bu yüzden her istek için istemci örneğini başlatmamız gerekiyor. İstemci örneği oluşturmak için bir yardımcı fonksiyon hazırlayalım:
Bu fonksiyonda, ExpressStorage
adaptörünün yanı sıra navigate
adaptörünü de uyguluyoruz. navigate
adaptörü, kullanıcıyı oturum açma URL'sine yönlendirmek için kullanılır.
Sonraki adımda, handleAuthRoutes
fonksiyonu içinde sarılı olarak yol işleyicilerini uygulayalım:
/auth/sign-in
yol işleyicisisignIn()
'i çağırarak oturum açma akışını başlatır, oturum açma durumu oturumda saklanır ve bu/auth/sign-in-callback
yol işleyicisi tarafından kullanılacaktır./auth/sign-in-callback
yol işleyicisi geri çağırma URL'sini işler vehandleSignInCallback()
'i çağırarak auth kodunu tokenlerle değiştirir, tokenlerExpressStorage
adaptörü tarafından oturumda saklanır. Değişim tamamlandığında, kullanıcı ana sayfaya geri yönlendirilir.
Adım 4: Ara Yazılımı Uygulamak
withLogto
ara yazılımı, yolları koruma amaçlı kullanılır. Mevcut isteğin bağlamını, kimlik doğrulama durumu ve kullanıcı bilgisi dahil, almak için getContext()
fonksiyonunu çağırır.
getContext
fonksiyonu, tokenleri oturumdan almak için depolama adaptörünü kullanır.
Kontrol Noktası: SDK'yı Kullanmak
Artık Logto için Express SDK'sını oluşturduğunuza göre, yolları korumak için ara yazılımı ekleyerek ve oturum açma akışını başlatmak ve geri çağırmayı işlemek için yol işleyicilerini kullanarak uygulamanızda kullanabilirsiniz.
İşte Express uygulamanızda SDK'yı nasıl kullanabileceğinize dair basit bir örnek:
Bu örnekte, kimlik doğrulama durumunu kontrol etmek için withLogto
ara yazılımını kullanıyoruz ve kullanıcı kimlik doğrulaması yapmamışsa onu oturum açma sayfasına yönlendiriyoruz, aksi takdirde hoş geldiniz mesajı gösteriyoruz.
Resmi Express örnek projesine buradan göz atabilirsiniz.
Sonuç
Bu rehberde, temel kimlik doğrulama akışını uygulayan Logto için Express SDK'sı oluşturma adımlarını size anlattık. Burada sağlanan SDK, temel bir örnektir. Uygulamanızın ihtiyaçlarına göre daha fazla yöntem ve işlevsellik ekleyerek genişletebilirsiniz.
Node.js'de çalışan diğer JavaScript tabanlı platformlar için de aynı adımları izleyerek bir SDK oluşturabilirsiniz.
Kaynaklar: