Ana içeriğe geç

Giriş

🎯 Bu modül ne yapar?

Users modülü, kayıtlı kullanıcıları yönetmenizi sağlar. Platform OneEntry'de, kayıtlı kullanıcılarla çalışmak için gerekli araçlar bulunmaktadır.


📖 Basit Açıklama

Her uygulamanın kullanıcı yönetimine ihtiyacı vardır:

  • 📝 Kullanıcı Profilleri - Kullanıcı bilgilerini yönetin
  • 💾 Özel Kullanıcı Verileri - Uygulamaya özgü verileri saklayın (durum nesnesi)
  • 🔍 Kullanıcı Arama - Kullanıcıları arayın ve filtreleyin

✨ Temel Kavramlar

Kullanıcı Nedir?

Kullanıcı, uygulamanızda kayıtlı bir hesaptır:

  • Temel Bilgiler - İsim, e-posta, telefon
  • Kimlik Doğrulama - Güvenli şifre saklama
  • Durum Nesnesi - Özel uygulama verileri
  • Zaman Damgaları - Kayıt tarihi, son giriş
  • Durum - Aktif, pasif, engellenmiş
  • İzinler - Kullanıcı rolleri ve erişim seviyeleri

Kullanıcı Yapısı

Her kullanıcının bu yapısı vardır:

{
id: 8, // Kullanıcı ID'si
identifier: 'test@test.ru', // Kullanıcı tanımlayıcısı (e-posta/giriş)
authProviderIdentifier: 'email', // Kimlik doğrulama sağlayıcı türü
formIdentifier: 'reg', // Kayıt formu tanımlayıcısı
formData: [ // Kullanıcı profili verileri
{ marker: 'name_reg', type: 'string', value: 'Ivan' },
{ marker: 'phone_reg', type: 'string', value: '+19258382556' },
],
groups: [1], // İzinler için kullanıcı grupları
state: {}, // Özel uygulama verileri
moduleFormConfigs: [], // Ek form yapılandırmaları
total: "1" // Toplam sayı (sayfalama için)
}

Ana Alanlar:

  • id - Benzersiz kullanıcı tanımlayıcısı
  • identifier - Kullanıcının girişi (e-posta, telefon, kullanıcı adı)
  • authProviderIdentifier - Kullanılan kimlik doğrulama yöntemi (e-posta, telefon vb.)
  • formData - Kullanıcının profil bilgilerini içeren form alanları dizisi
  • groups - Erişim kontrolü için grup ID'leri dizisi
  • state - Uygulamaya özgü veriler için özel JSON nesnesi

Özel durum verileri ile kullanıcı alma

Faydalar:

  • 🔒 Güvenli - Şifre karma, güvenli kimlik doğrulama
  • 📋 Doğrulanmış - E-posta ve veri doğrulaması
  • 🔄 Kimlik Doğrulanmış - Token tabanlı oturumlar
  • 💾 Kalıcı - Veriler veritabanında saklanır

Kullanıcı Durum Nesnesi

Uygulamanızın çalışması için gerekli verileri bir durum nesnesinde saklayabilirsiniz. Kullanıcı değiştiğinde, duruma gerekli verileri ekleyin. Kullanıcının verileri daha sonra alındığında, bir durum nesnesi içerecektir.

Kullanıcıya kaç sipariş verdiği hakkında bilgi eklediğimiz bir örnek. Durum nesnesine "orderCount" alanını ekleyin.

Durum nesnesi, her kullanıcı için özel veri saklama alanıdır:

Kullanım DurumuDurum ÖrneğiAçıklama
E-ticaret{ orderCount: 5, totalSpent: 499.99 }Satın alma geçmişini takip et
İçerik Sitesi{ articlesRead: 25, bookmarks: [1,2,3] }İçerik tüketimini takip et
Sosyal Uygulama{ postsCount: 42, followers: 150 }Sosyal metrikleri takip et
Oyun{ level: 15, score: 9500, achievements: [...] }Oyun ilerlemesini takip et
SaaS{ plan: 'premium', usage: 75 }Abonelik verilerini takip et

Kullanıcı İş Akışı

1. Kullanıcı kayıt formunu doldurur
(E-posta, şifre, isim)

2. createUser() çağrılır
(OneEntry şifreyi doğrular ve karma işlemi yapar)

3. Kullanıcı hesabı oluşturulur
(Veritabanında saklanır)

4. Kullanıcı giriş yapar
(authenticateUser() kimlik bilgilerini doğrular)

5. Kimlik doğrulama token'ı döner
(Sonraki istekler için kullanılır)

6. Uygulama kullanıcı durumunu günceller
(orderCount gibi özel veriler)

7. Kullanıcı verileri gerektiğinde alınır
(getUserById() ile mevcut durum)

Neden Kullanıcı Modülünü Kullanmalıyım?

FaydasıAçıklama
Güvenli Kimlik DoğrulamaŞifre karma, token yönetimi
Kullanıcı YönetimiKullanıcıları oku, güncelle, sil
Özel Veri SaklamaUygulamaya özgü veriler için durum nesnesi
E-posta DoğrulamasıOtomatik e-posta format kontrolü
Çift Kayıt ÖnlemeÇift e-posta kaydını önler
Oturum YönetimiToken tabanlı kimlik doğrulama

📋 Bilmeniz Gerekenler

Yetkilendirme Sağlayıcısı

OneEntry'deki kullanıcılar, kayıt ve kimlik doğrulama mekanizmalarını yöneten bir yetkilendirme sağlayıcısı sistemi aracılığıyla yönetilmektedir.

Ana noktalar:

  • Kullanıcılar, OneEntry yönetim panelinde yapılandırılan formlar aracılığıyla kayıt olurlar
  • Her kullanıcı, bir kimlik doğrulama sağlayıcısı (e-posta, telefon vb.) ile ilişkilendirilir
  • Kullanıcı verileri, formData ile tanımlanan form alanlarında saklanır
  • Ek meta veriler, state nesnesinde saklanır

Kullanıcı Durum Nesnesi Esnektir

Durum nesnesi, herhangi bir özel JSON verisini saklayabilir.

En iyi uygulamalar:

  • Sadece uygulamaya özgü verileri saklayın
  • Durum nesnesini iç içe nesnelerle düzenli tutun
  • Tüm durum nesnesini güncelleyin (mevcut verileri yayarak)
  • Durumda hassas verileri saklamayın

Şifre Güvenliği

OneEntry, şifre güvenliğini otomatik olarak yönetir.

Sizin sorumluluğunuz:

  • Şifre gereksinimlerini zorunlu kılın (uzunluk, karmaşıklık)
  • Göndermeden önce istemci tarafında şifreyi doğrulayın
  • Şifreleri asla kaydetmeyin
  • Tüm kimlik doğrulama istekleri için HTTPS kullanın

Kimlik Doğrulama Token Yönetimi

Kimlik doğrulama token'larını güvenli bir şekilde saklayın ve kullanın.

Token en iyi uygulamaları:

  • Mümkünse HTTP yalnızca çerezlerde saklayın
  • Kısa sonlanma süreleri kullanın (1-2 saat)
  • Uzun oturumlar için yenileme token'ları uygulayın
  • Çıkışta token'ı temizleyin
  • Token'ları URL'lerde asla açığa çıkarmayın

Kullanıcı Kaydı Doğrulaması

Kayıttan önce her zaman kullanıcı girişini doğrulayın.

Kullanıcı Durumunu Güvenli Bir Şekilde Güncelleme

Güncellerken mevcut durumu her zaman koruyun:

// ❌ Kötü - Tüm durumu üzerine yazar
const userstate = {
orderCount: 1
}

// ✅ İyi - Mevcut durumu koru
const userstate = {
...user.state, // Mevcut durumu yay
orderCount: (user.state.orderCount || 0) + 1 // Belirli alanı güncelle
}

Çift E-posta Önleme

OneEntry, otomatik olarak çift e-posta kaydını önler.

En iyi uygulama: Hata durumunu kontrol edin ve kullanıcı dostu bir mesaj gösterin.

Kullanıcı Sayfalama

Büyük kullanıcı tabanları için, birden fazla kullanıcı alırken her zaman sayfalama yapın.


💡 Önemli Notlar

Yetkilendirme Gereklidir

Çoğu kullanıcı yöntemi, AuthProvider modülü aracılığıyla yetkilendirme gerektirir. Kullanıcıyı önce kimlik doğrulaması yapmadan kullanıcı yönetim yöntemlerini çağırmayın.


Kullanıcı Form Verileri

Kullanıcı verileri, OneEntry yönetim panelinde yapılandırılan formlara göre yapılandırılmıştır:

  • Her kullanıcının kullandığı kayıt formunu referans alan bir formIdentifier vardır
  • Kullanıcı verileri, işaretçiler, türler ve değerlerle birlikte formData dizisinde saklanır
  • Desteklenen alan türleri: string, integer, float, date, dateTime, time, text, textWithHeader, image, groupOfImages, file, radioButton, list, entity, timeInterval

Durum Nesnesi Kılavuzları

Durum nesnesi için en iyi uygulamalar:

  • Sadece uygulamaya özgü verileri saklayın
  • Durumu iç içe nesnelerle düzenli tutun
  • Tüm durumu güncelleyin (mevcut verileri yayarak)
  • Hassas verileri (şifreler, token'lar) saklamayın
  • Büyük ikili verileri saklamayın
  • Tutarlı adlandırma kurallarını kullanın

Push Bildirimleri

Kullanıcılara push bildirimleri göndermek için addFCMToken() ve deleteFCMToken() kullanarak Firebase Cloud Messaging token'larını yönetin.


Bildirim Verileri

Kullanıcıları güncellerken, aşağıdaki notificationData nesnesini sağlayabilirsiniz:

  • email - Bildirimler için e-posta adresi
  • phonePush - Push bildirimleri için telefon numaraları dizisi
  • phoneSMS - SMS bildirimleri için telefon numarası

📊 Hızlı Referans Tablosu

YöntemAçıklamaKullanım Durumu
getUser()Yetkilendirilmiş kullanıcı verilerini alMevcut kullanıcı profilini al
updateUser()Kullanıcı bilgilerini güncelleProfil güncellemeleri, durum değişiklikleri
archiveUser()Kullanıcı hesabını arşivleKullanıcı hesabını yumuşak silme
deleteUser()Kullanıcıyı kalıcı olarak silKullanıcı hesabını sert silme
addFCMToken()Push bildirimleri için FCM token'ı eklePush bildirimlerini etkinleştir
deleteFCMToken()FCM token'ını kaldırPush bildirimlerini devre dışı bırak

❓ Sıkça Sorulan Sorular (SSS)

Kullanıcı durum nesnesi nedir ve nasıl kullanılmalıdır?

Durum nesnesi, uygulamaya özgü kullanıcı verileri için esnek bir JSON saklama alanıdır. Sipariş sayıları, tercihler veya ilerleme gibi özel metrikleri takip etmek için kullanın. Güncellerken mevcut durumu her zaman yayarak diğer verilerin üzerine yazmaktan kaçının.


Kullanıcı profil bilgilerini nasıl güncelleyebilirim?

Kullanıcı profil verilerini değiştirmek için updateUser() kullanın. Form veri alanlarını, bildirim ayarlarını ve durum nesnesini güncelleyebilirsiniz. Önce AuthProvider modülünü kullanarak kullanıcıyı kimlik doğrulaması yapmayı unutmayın.


archiveUser() ve deleteUser() arasındaki fark nedir?

archiveUser(), kullanıcıyı gizleyen ancak verileri koruyan yumuşak bir silmedir (geri yüklenebilir). deleteUser(), kullanıcıyı ve tüm ilişkili verileri kalıcı olarak kaldırır (geri alınamaz). Tam veri kaldırma gereksiniminiz yoksa arşivlemeyi kullanın.


Kullanıcılar için push bildirimlerini nasıl yönetebilirim?

Kullanıcı için bir Firebase Cloud Messaging token'ı kaydetmek için addFCMToken() kullanın. Bu, cihazlarına push bildirimleri göndermeyi etkinleştirir. Çıkış yaptıklarında veya bildirimleri devre dışı bıraktıklarında deleteFCMToken() kullanın.


Kullanıcı durum nesnesinde hassas verileri saklayabilir miyim?

Hayır! Durum nesnesinde asla şifreler, token'lar, kredi kartı numaraları veya diğer hassas verileri saklamayın. Hassas veriler için özel olarak şifrelenmiş sistemler kullanın.


Kayıttan sonra kullanıcı verilerini nasıl alabilirim?

Başarılı kayıt ve kimlik doğrulamasından sonra, kimlik doğrulanmış kullanıcının verilerini almak için getUser() kullanın; bu, profil bilgilerini ve özel durum nesnesini içerir.


🎓 En İyi Uygulamalar

  • Kayıttan önce girişi doğrulayın - E-posta formatını, şifre gücünü kontrol edin
  • Kimlik doğrulama için HTTPS kullanın - Tüm giriş isteklerini şifreleyin
  • Şifre gereksinimlerini uygulayın - Minimum 8 karakter, karmaşık, sayılar
  • Token'ları güvenli bir şekilde saklayın - HTTP yalnızca çerezler veya güvenli depolama
  • Mevcut durumu koruyun - Durumu güncellerken mevcut verileri yayarak koruyun
  • Çift e-postaları yönetin - 409 hatalarını yakalayın ve kullanıcı dostu bir mesaj gösterin
  • Çıkışı uygulayın - Token'ları ve oturum verilerini temizleyin
  • Kullanıcı verilerini önbelleğe alın - Sık erişilen kullanıcılar için API çağrılarını azaltın

OneEntry yönetim panelinde kullanıcı yönetimi hakkında daha fazla bilgi: https://doc.oneentry.cloudhttps://doc.oneentry.cloud/docs/category/users


Users modülünün tanımı


const { Users } = defineOneEntry(
"your-project-url", {
"token": "your-app-token"
}
);


🔗 İlgili Belgeler