Bu belge AI tarafından çevrilmiştir. Herhangi bir yanlışlık için lütfen İngilizce sürümüne bakın
NocoBase, kullanıcı kimlik doğrulama türlerini ihtiyaca göre genişletmenizi destekler. Kullanıcı kimlik doğrulaması genellikle iki ana türe ayrılır: Birincisi, NocoBase uygulaması içinde kullanıcı kimliğinin belirlenmesidir; örneğin şifreyle giriş veya SMS ile giriş. İkincisi ise, üçüncü taraf hizmetlerin kullanıcı kimliğini belirleyip sonucu bir geri çağırma (callback) aracılığıyla NocoBase uygulamasına bildirmesidir; OIDC, SAML gibi kimlik doğrulama yöntemleri bu kategoriye girer. NocoBase'deki bu iki farklı kimlik doğrulama türünün temel süreci aşağıdaki gibidir:
api.auth.signIn() giriş arayüzünü çağırır ve auth:signIn giriş arayüzünü talep eder. Bu sırada, kullanılan kimlik doğrulayıcı (authenticator) tanımlayıcısını X-Authenticator istek başlığı aracılığıyla arka uca iletir.auth:signIn arayüzü, istek başlığındaki kimlik doğrulayıcı tanımlayıcısına göre ilgili kimlik doğrulama türüne yönlendirme yapar ve bu kimlik doğrulama türünde kayıtlı kimlik doğrulama sınıfının validate metodu gerekli mantıksal işlemleri gerçekleştirir.auth:signIn arayüz yanıtından kullanıcı bilgilerini ve kimlik doğrulama token'ını alır, token'ı Yerel Depolama'ya (Local Storage) kaydeder ve giriş işlemini tamamlar. Bu adım, SDK içinde otomatik olarak işlenir.
auth:getAuthUrl) aracılığıyla üçüncü taraf giriş URL'sini alır ve protokole uygun olarak uygulama adı, kimlik doğrulayıcı tanımlayıcısı gibi bilgileri taşır.auth:redirect) çağırır, kimlik doğrulama sonucunu ve aynı zamanda uygulama adı, kimlik doğrulayıcı tanımlayıcısı gibi bilgileri döndürür.AuthManager aracılığıyla ilgili kimlik doğrulama sınıfını alır ve auth.signIn() metodunu aktif olarak çağırır. auth.signIn() metodu, yetkilendirme mantığını işlemek için validate() metodunu çağırır.token'ını aldıktan sonra, 302 durum koduyla ön uç sayfasına geri yönlendirir ve URL parametrelerinde token ile kimlik doğrulayıcı tanımlayıcısını (?authenticator=xxx&token=yyy) taşır.
Şimdi, sunucu tarafı arayüzlerini ve istemci tarafı kullanıcı arayüzlerini nasıl kaydedeceğinizi inceleyelim.
NocoBase çekirdeği, kimlik doğrulama türlerini genişletmek için kayıt ve yönetim imkanı sunar. Giriş eklentisini genişletmenin temel mantık işlemleri için, çekirdeğin Auth soyut sınıfından miras almanız ve ilgili standart arayüzleri uygulamanız gerekir.
Tüm API referansı için Auth bölümüne bakınız.
Çekirdek ayrıca, kullanıcı kimlik doğrulamasıyla ilgili temel kaynak işlemlerini de kaydeder.
| API | Açıklama |
|---|---|
auth:check | Kullanıcının giriş yapıp yapmadığını kontrol eder |
auth:signIn | Giriş yap |
auth:signUp | Kaydol |
auth:signOut | Çıkış yap |
Çoğu durumda, genişletilmiş kullanıcı kimlik doğrulama türleri, kullanıcıların API'ye erişim kimlik bilgilerini oluşturmak için mevcut JWT yetkilendirme mantığını da kullanabilir. Çekirdekteki BaseAuth sınıfı, Auth soyut sınıfının temel bir uygulamasını sunar, BaseAuth bölümüne bakınız. Eklentiler, bazı mantık kodlarını yeniden kullanmak ve geliştirme maliyetlerini düşürmek için doğrudan BaseAuth sınıfından miras alabilir.
Kullanıcı kimlik doğrulama mantığını uygularken, genellikle kullanıcı verilerinin işlenmesi gerekir. NocoBase uygulamasında, ilgili koleksiyonlar varsayılan olarak şu şekilde tanımlanmıştır:
| Koleksiyon | Açıklama | Eklenti |
|---|---|---|
users | Kullanıcı bilgilerini (e-posta, takma ad ve şifre gibi) saklar | Kullanıcı Eklentisi (@nocobase/plugin-users) |
authenticators | Kimlik doğrulayıcı (kimlik doğrulama türü varlığı) bilgilerini, ilgili kimlik doğrulama türünü ve yapılandırmasını saklar | Kullanıcı Kimlik Doğrulama Eklentisi (@nocobase/plugin-auth) |
usersAuthenticators | Kullanıcıları ve kimlik doğrulayıcıları ilişkilendirir, kullanıcının ilgili kimlik doğrulayıcı altındaki bilgilerini kaydeder | Kullanıcı Kimlik Doğrulama Eklentisi (@nocobase/plugin-auth) |
Genellikle, genişletilmiş giriş yöntemleri ilgili kullanıcı verilerini depolamak için users ve usersAuthenticators koleksiyonlarını kullanır. Yalnızca özel durumlarda kendiniz yeni bir koleksiyon eklemeniz gerekebilir.
usersAuthenticators koleksiyonunun ana alanları şunlardır:
| Alan | Açıklama |
|---|---|
uuid | Bu kimlik doğrulama türü için kullanıcının benzersiz tanımlayıcısı (örn. telefon numarası, WeChat openid gibi) |
meta | JSON alanı, kaydedilmesi gereken diğer bilgiler |
userId | Kullanıcı ID'si |
authenticator | Kimlik doğrulayıcı adı (benzersiz tanımlayıcı) |
Kullanıcı sorgulama ve oluşturma işlemleri için, authenticators koleksiyonunun veri modeli olan AuthModel, CustomAuth sınıfında this.authenticator[metotAdı] aracılığıyla kullanılabilecek birkaç metot da kapsüller. Tüm API referansı için AuthModel bölümüne bakınız.
Genişletilmiş kimlik doğrulama yönteminin, kimlik doğrulama yönetim modülüne kaydedilmesi gerekir.
İstemci kullanıcı arayüzü, kullanıcı kimlik doğrulama eklentisi istemcisi tarafından sağlanan registerType arayüzü aracılığıyla kaydedilir:

Birden fazla kimlik doğrulayıcının ilgili kimlik doğrulama türü için giriş formları kaydettirmesi durumunda, bunlar Sekmeler (Tab) şeklinde görüntülenecektir. Sekme başlığı, arka uçta yapılandırılan kimlik doğrulayıcının başlığı olacaktır.


Genellikle üçüncü taraf giriş butonları için kullanılır, ancak aslında herhangi bir bileşen olabilir.

Giriş sayfasından kayıt sayfasına geçiş yapmanız gerekiyorsa, bunu giriş bileşeninde kendiniz yönetmeniz gerekir.

Üst kısım genel kimlik doğrulayıcı yapılandırmasıdır, alt kısım ise kaydedilebilen özel yapılandırma formu bölümüdür.
İstemci tarafında kullanıcı kimlik doğrulamasıyla ilgili arayüz isteklerini başlatmak için NocoBase tarafından sağlanan SDK'yı kullanabilirsiniz.
Detaylı API referansları için @nocobase/sdk - Auth bölümüne bakınız.