Türkçe
  • Sihirli bağlantı
  • Parolasız
  • Kimlik Doğrulama
  • Davet

Sihirli bağlantı ile kimlik doğrulama

Parolasız oturum açma, davetiyeyle kayıt ve organizasyon üye davetleri için tek kullanımlık belirteçleri kullanarak sihirli bağlantıları nasıl uygulayacağınızı öğrenin.

Ran
Ran
Product & Design

Kullanıcı kimlik doğrulamasına haftalar harcamayı bırakın
Logto ile güvenli uygulamaları daha hızlı yayınlayın. Kullanıcı kimlik doğrulamasını dakikalar içinde entegre edin ve temel ürününüze odaklanın.
Başlayın
Product screenshot

Sihirli bağlantı nedir?

Sihirli bağlantı, bir kullanıcının email (veya SMS) yoluyla tek kullanımlık bir oturum açma URL'si aldığı, parolasız bir kimlik doğrulama yöntemidir. Bağlantıya tıklamak, parola gerektirmeden oturum açılmasını sağlar.

İşte sihirli bağlantıların bazı ana güvenlik özellikleri:

  • Tek kullanımlık belirteç: Tıklandığında, yeniden kullanılmayı önlemek için belirteç geçersiz hale gelir.
  • Bağlantı süresi dolma: Sihirli bağlantının kısa bir sona erme süresi olmalıdır (örneğin, 10 dakika) ek güvenlik için.
  • Oran sınırlaması: Belirli bir zaman diliminde kaç sihirli bağlantı gönderilebileceğini sınırlayarak kötüye kullanımı önleyin.
  • Cihaz/tarayıcı bağlama (Opsiyonel): Bağlantının kullanımını orijinal cihaz veya IP ile sınırlayarak önlem sağlayın.

Sihirli bir bağlantının bileşimi

Bir sihirli bağlantı şunlardan oluşur:

  • URL yolu: Uygulamanızın açılış sayfasına işaret eder.
  • Tek kullanımlık belirteç: Parolasız kimlik doğrulama için kullanılan benzersiz ve tek kullanımlık bir belirteç.
  • Kullanıcı emaili: Belirtecin ve kullanıcının kimliğinin doğruluğunu kontrol etmek için kullanılır.
  • Ek parametreler: Uygulamanızın ihtiyaçlarına bağlı olarak isteğe bağlıdır.

Örneğin, bir sihirli bağlantı şu şekilde görünebilir:

Bir sihirli bağlantı oluşturmak için bir tek kullanımlık belirteç üretmeniz, bunu güvenli bir şekilde kullanıcıya göndermeniz ve ardından kullanıcı bağlantıya tıkladığında doğrulamanız gerekir.

Sihirli bağlantının iş akışı

  1. Kullanıcı bir sihirli bağlantı talep eder: Kullanıcı, uygulamanızda email adresini girer.
  2. Tek kullanımlık belirteç oluşturma: Sunucu bir belirteç oluşturur ve bunu email yoluyla bir bağlantı olarak gönderir.
  3. Kullanıcı bağlantıya tıklar: Kullanıcı emaildeki bağlantıya tıklar.
  4. Belirteç doğrulama: Sunucu, belirtecin geçerli olup olmadığını kontrol eder.
  5. Kullanıcı kimlik doğrulaması yapılır: Belirteç geçerliyse, kullanıcı oturum açar.

Logto ile sihirli bağlantılar nasıl uygulanır?

Adım 1: Tek kullanımlık belirteç talebi

Tek kullanımlık belirteç oluşturmak için Logto Yönetim API'sini kullanın.

Örnek istek gövdesi yükü:

Adım 2: Sihirli bağlantınızı oluşturun

Tek kullanımlık belirteci aldıktan sonra, bir sihirli bağlantı oluşturabilir ve bunu son kullanıcının email adresine gönderebilirsiniz. Sihirli bağlantı en azından belirteç ve kullanıcı emailini parametre olarak içermeli ve kendi uygulamanızda bir açılış sayfasına yönlendirmelidir. Örneğin https://yourapp.com/landing-page.

İşte sihirli bağlantının nasıl görünebileceğine dair basit bir örnek:

Not:

Sihirli bağlantıdaki parametre adları tamamen özelleştirilebilir. Uygulamanızın gereksinimlerine göre sihirli bağlantıya ek bilgi ekleyebilir ve tüm URL parametrelerini kodlayabilirsiniz.

Adım 3: Logto SDK ile kimlik doğrulama akışını tetikleyin

Son kullanıcı sihirli bağlantıya tıkladıktan ve uygulamanıza yönlendirildikten sonra, URL'den token ve email parametrelerini çıkarabilir ve ardından Logto SDK'sından signIn() fonksiyonunu çağırarak kimlik doğrulama akışını tetikleyebilirsiniz.

Daha fazla ayrıntı için Logto Belgeleri - Sihirli Bağlantı (Tek Kullanımlık Belirteç) bölümünü kontrol edin.

Sihirli bağlantı kullanım senaryoları

Sihirli bağlantılar ilk faktör kimlik doğrulama adımının yerini alabilir, ancak Çok Faktörlü Kimlik Doğrulama'ya (MFA) bypass yapamaz.

Logto'da, tek kullanımlık bir belirteç ile bir sihirli bağlantı oluştururken, bunun oturum açma veya oturum açma için olup olmadığı belirtilmesine gerek yoktur. Email'in kayıt durumuna göre akışı otomatik olarak belirleriz:

  • Kayıtsız email: Sihirli bağlantıya tıkladıklarında kullanıcılar email girişini ve doğrulamasını atlayarak hesap oluşturma akışına yönlendirilir. Kullanıcılar parolayı ayarlama, profil bilgilerini ekleme (örn. tam ad) veya kayıt ayarlarınıza bağlı olarak MFA ayarlama işlemlerine ilerler.
  • Kayıtlı email: Sihirli bağlantıya tıklamak, ilk adım doğrulamasını (“email + parola” veya “email + doğrulama kodu” gibi) atlar. Kullanıcılar ya doğrudan oturum açar ya da oturum açma ayarlarınıza bağlı olarak MFA'yı tamamlamaya yönlendirilirler.

Logto, aşağıdaki senaryoları sihirli bağlantılar ile destekler:

  1. Yalnızca davetle kayıt: İç araçlar veya test aşamasındaki AI ürünleri için genel kaydı devre dışı bırakabilir ve belirli kullanıcılara sihirli bağlantı ile davet gönderebilirsiniz.
  2. Organizasyon üyesi daveti: SaaS ürünleri için, organizasyona yeni üyeleri davet etmek için sihirli bağlantılar kullanarak üyelik sürecini kolaylaştırın.
  3. Oturum açma / Kaydolma: Email yoluyla oturum açma veya kayıt için sihirli bir bağlantı gönderin.

Şu anda desteklenmiyor:

Daha fazla özelleştirmeye ihtiyacınız varsa bize bildirin.

Yalnızca davetle kayıt için sihirli bağlantı

Dahili testteki yeni ürünler (Örn: AI araçlar) veya iç araçlar için, genel kaydı devre dışı bırakmak ve yalnızca belirli kullanıcıların uygulamanıza erişmesine izin vermek isteyebilirsiniz. Bunu Logto ile uygulamak için:

  1. Konsol > Oturum açma deneyimi > Oturum açma ve kaydolma > Gelişmiş seçenekler, "Kullanıcı kaydını etkinleştir" seçeneğini kapatın.

    logto_disable_public_registration.png

  2. Davet etmek istediğiniz kullanıcıların email adreslerini toplayın (örn. web siteniz veya mevcut kullanıcıların tavsiyeleri aracılığıyla).

  3. Tek kullanımlık belirteç isteyin, sihirli bağlantıyı oluşturun ve Logto SDK ile kimlik doğrulama işlemi başlatın.

    Not: Davet bağlantısının bir sona erme süresi olmasını ayarlayın. Bağlantının en az bir gün geçerli olmasını öneririz. Tek kullanımlık belirteci oluşturmak için aşağıdaki istek gövdesini kullanın:

  4. Kullanıcının email adresine sihirli bağlantıyı gönderin (örn. https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Email şablonunu özelleştirin, örneğin:

    email_templates_invitation_only_registration.png

    Kullanıcılar "Davetiyeyi kabul et"e tıkladığında, genel kayıt kapalı olsa bile hizmetinize otomatik olarak kayıt olacaklardır. Bu "Hedeflenen kullanıcı daveti" olarak adlandırılır.

Sihirli bağlantı ile organizasyon üyesi daveti

Çok kiracılı ürünler (Örn: SaaS uygulamaları gibi Slack, GitHub, Vercel) için organizasyon üyeliklerini yönetmek amacıyla sorunsuz bir üyelik davet sürecini sağlayın. Üyelik davetlerinde daha yüksek dönüşüm oranları için sihirli bağlantılar kullanın.

  1. Logto Belgeleri'ni izleyerek organizasyon yaratma, organizasyon rol tabanlı erişim kontrolü ve organizasyon yönetimini uygulayın: Logto Organizations.

  2. Ürününüzde "Üyeleri davet et" akışını ayarlayın. Örnek:

    invite_organization_member_in_app.png

  3. Organizasyon Üyelerini Davet Et kılavuzunu takip edin. Not: Üyeleri davet ederken istek yükünün şunları içerdiğinden emin olun:

  • Kullanıcının katılacağı organizasyonları belirtmek için context: jitOrganizationIds.

  • Kullanıcılara daveti kabul etmeleri için yeterli süre sağlamak amacıyla daha uzun bir expiresIn zamanı ayarlayın (örneğin, 2 gün veya 1 hafta).

    Örnek istek yükü:

  1. Sihirli davet bağlantısını kullanıcının email adresine gönderin (örn. https://yourapp.com/landing-page?type=organizationMemberInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Email şablonunuzu özelleştirin, örneğin:

    email_templates_join_organization.png

    Kullanıcılar **"Davetiyeyi kabul et"**e tıkladığında, otomatik olarak oturum açacak veya kayıt olacak ve organizasyona katılacaklardır.

Hesap çakışmalarını yönet

Bir kullanıcı zaten oturum açmışsa ve başka bir sihirli bağlantıya tıklarsa ne olur?

Hesap çakışmalarını doğru şekilde yönetmek için şunları sağlayın:

  • "Oturum açma isteminde" login eklemekten kaçının: Oturum açma isteminin login içerdiği ayarlamaktan kaçının. Yanlış ayarlanmışsa, Logto sihirli bağlantı belirteciyle ilişkilendirilen hesabı otomatik olarak oturum açacak ve hesap değiştirme istemini atlayacaktır.
  • Mevcut belirteçleri koruyun: signIn() fonksiyonu çağrılırken mevcut belirteçlerin temizlenmesini önlemek için clearTokens: false parametresini belirtin. Bu seçenek kullanıldığında, oturum açma geri çağırma sayfasında belirteçleri manuel olarak temizlemeniz gerektiğinden emin olun.

Doğru yapılandırmadan sonra kullanıcı deneyimi aşağıdaki gibi olacaktır:

  1. Mevcut hesap için sihirli bağlantı: Kullanıcı zaten oturum açmışsa ve aynı hesap için bir sihirli bağlantıya tıklarsa, Logto tek kullanımlık belirteci doğrulayacak ve gerekiyorsa kullanıcıyı belirtilen organizasyonlara atayacaktır.
  2. Farklı bir hesap için sihirli bağlantı: Kullanıcı oturum açmışsa ve farklı bir hesap için bir sihirli bağlantıya tıklarsa, Logto kullanıcıya şunları yapma seçeneği sunar:
    • Yeni hesapla devam et: Logto, belirteci doğruladıktan sonra yeni hesaba geçer.
    • Mevcut hesapta kal: Logto belirteci doğrulamayı atlar ve kullanıcıyı mevcut hesaba geri döndürür.
    magic_link_account_conflicts.png

Geçersiz sihirli bağlantılar için hata sayfalarını yönetin

Kullanıcılar geçersiz bir sihirli bağlantıya tıkladıklarında, sorunun ne olduğunu açıklayan bir hata sayfasına yönlendirilecektir. İşte olası hata senaryoları ve mesajları:

İsimAçıklama
token_not_foundVerilen email ve belirteç ile aktif belirteç bulunamadı.
email_mismatchVerilen belirteç ile email uyuşmuyor.
token_expiredBelirteç süresi doldu.
token_consumedBelirteç tüketildi.
token_revokedBelirteç iptal edildi.
cannot_reactivate_tokenBelirteç yeniden etkinleştirilemiyor.

Her hata sayfası, kullanıcıların geçersiz sihirli bağlantıların arkasındaki nedeni anlamalarına ve bir sonraki adımlar konusunda yönlendirilmesine yardımcı olacak belirli bir mesaj sağlayacaktır. Örneğin:

magic_link_error_pages.png

Sonuç

Logto, esnek ve parolasız oturum açma akışları ile kapsamlı güvenlik sağlar ve sihirli bağlantılar kullanarak kullanıcı deneyimlerini kolaylaştırır. Kullanıcılarınızı bir organizasyona davet ederken, onları zahmetsizce hesap oluşturma veya sorunsuz kimlik doğrulama ile karşılaştırırken basit ama güçlü bir yol sunar. Logto, hesap çakışmaları veya süresi dolmuş belirteçler gibi zorlu durumları ele alarak kullanıcılarınıza güvenli ve sorunsuz bir süreç sunar.

IAM'inizi güçlü kimlik doğrulama ile modernleştirmeye hazır mısınız?