Türkçe
  • nodejs
  • javascript
  • sdk
  • express

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.

Sijie
Sijie
Developer

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:

  1. Logto'ya Yönlendirme: Kullanıcı, Logto oturum açma sayfasına yönlendirilir.
  2. Kimlik Doğrulama: Kullanıcı, kimlik bilgilerini girer ve Logto ile kimlik doğrulaması yapar.
  3. 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.
  4. 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:

  1. signIn(): OIDC yetkilendirme URL'sini oluşturur ve buna yönlendirir.
  2. 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.
  3. 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:

  1. /sign-in: OIDC yetkilendirme URL'sine yönlendiren yanıtla oturum açma akışını başlatan bir yol işleyici.
  2. /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.
  3. withLogto ara yazılımı: Mevcut isteğin bağlamını, kimlik doğrulama durumu ve kullanıcı bilgisi dahil, almak için getContext() 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:

  1. /auth/sign-in yol işleyicisi signIn()'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.
  2. /auth/sign-in-callback yol işleyicisi geri çağırma URL'sini işler ve handleSignInCallback()'i çağırarak auth kodunu tokenlerle değiştirir, tokenler ExpressStorage 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:

  1. Logto Node SDK
  2. Logto Express SDK