Passport.js ile Logto Entegrasyonu
Passport.js ile Logto'yu entegre etmek için uygulamalı bir rehber ve örnek.
Passport.js , Express tabanlı herhangi bir web uygulamasına kesintisiz bir şekilde eklenebilen, Node.js için bir kimlik doğrulama ara yazılımıdır. Bu kapsamlı rehber, Logto'yu Passport.js ile entegre etmenin basit ama etkili bir yolunu sunan passport-openidconnect
eklentisini kullanmaya odaklanacaktır. Bu eğitim boyunca uygulamamızı oluşturmak için Express.js kullanacağız. Tartışacağımız tüm kodlar, halka açık bir GitHub deposunda mevcuttur.
Oturum ile Express kurulumunu yapma
Entegrasyon sürecine dalmadan önce, Express.js ve oturum ara yazılımını yükleyerek temel projeyi kurmamız gerekecek.
Bir TypeScript proje ortamınızın hazır olduğunu varsayarak (eğer değilse, resmi TypeScript belgelerine başvurun), gerekli paketleri yükleyerek başlayın:
Ana dosyayı hazırlama
src/app.ts
dosyasını aşağıdaki kodla oluşturun:
Bu script, Express uygulamasını başlatır ve Passport.js'de kimlik doğrulama sonuçlarını depolamak için kritik olan çerez bazlı oturum yönetimi için cookieParser
ve session
ara yazılımını yapılandırır. Ardından hizmeti başlatmak için http
modülünü kullanır.
Logto uygulaması oluşturma
Devam etmek için bir Logto uygulaması gereklidir. Logto Konsolu adresini ziyaret ederek, "Uygulamalar"a giderek ve "Uygulama Oluştur"a tıklayarak bir tane oluşturun. "Express"i seçin, uygulamanıza bir isim verin ve "Uygulama Oluştur"a tıklayın.
Oluşturma rehberini tamamladıktan veya okuduktan sonra, sonraki adımlar için yapılandırma bilgileri içeren ayrıntılı bir sayfa bulacaksınız.
URI'leri Ayarlama
Uygulama detayları sayfasında iki değeri yapılandırın:
- Yönlendirme URI'leri: Projenin geri çağırma rotasıyla uyumlu olması için bunu
http://localhost:3000/callback
olarak ayarlayın. - Oturum Sonrası Yönlendirme URI'leri: Kullanıcıları oturum sonrası ana sayfaya yönlendirmek için basitlik adına
http://localhost:3000
kullanın.
Bu değerleri daha sonra değiştirebilirsiniz.
Uygulama ayarlarıyla Passport.js yapılandırma
Bağımlılıkları yükleme
passport
ve OIDC strateji eklentisini, passport-openidconnect
’i yükleyin:
Yapılandırma dosyasını hazırlama
Yapılandırma yönetimi için app/config.ts
oluşturun:
Çevresel değişkenleri uygun şekilde kurun:
Çevresel Değişken | Açıklama | Örnek |
---|---|---|
APP_ID | Logto'dan Uygulama ID'si | 4ukboxxxxxxxxx |
APP_SECRET | Logto'dan Uygulama Şifresi | 5aqccxxxxxxx |
ENDPOINT | Logto Endpoint | https://g5xxx.logto.app/ |
Passport.js’i OIDC stratejisi ile başlatma
src/passport.ts
oluşturun
Bu kod Passport'u OpenIDConnectStrategy
ile başlatır. Serialize ve deserialize yöntemleri, gösterim amacıyla ayarlanmıştır.
Uygulamanızda Passport ara yazılımını başlattığınızdan ve eklediğinizden emin olun:
Kimlik doğrulama rotalarını oluşturma
Şimdi kimlik doğrulama süreçleri için belirli rotaları oluşturacağız:
Giriş: /sign-in
Bu rota, bir OIDC kimlik doğrulama rotası oluşturur ve yönlendirir.
Giriş geri aramasını işleme: /callback
Bu, OIDC oturum açma geri aramasını işler, tokenları saklar ve ana sayfaya yönlendirir.
Çıkış: /sign-out
Bu, Logto’nun oturum sonu URL'sine ve ardından ana sayfaya yeniden yönlendirir.
Kimlik doğrulama durumunu alma ve rotaları koruma
Kimlik doğrulama durumu ile ana sayfayı geliştirin:
Burada, JSON.stringify
kullanılarak kullanıcı bilgileri görüntülenir ve request.user
'ın varlığı rotaları korumak için kullanılır.
Sonuç
Passport.js ile Logto'yu entegre ettiğiniz için tebrikler. Umarım bu rehber, mevcut sistemlerden Logto kullanmaya geçmenize yardımcı olabilir. Gelişmiş bir kimlik doğrulama deneyimi için bugün Logto Cloud'u denemeyi düşünebilirsiniz. İyi kodlamalar!