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ı dizisigroups- Erişim kontrolü için grup ID'leri dizisistate- 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 Durumu | Durum Örneği | Açı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önetimi | Kullanıcıları oku, güncelle, sil |
| Özel Veri Saklama | Uygulamaya ö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önetimi | Token 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,
formDataile tanımlanan form alanlarında saklanır - Ek meta veriler,
statenesnesinde 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
formIdentifiervardır - Kullanıcı verileri, işaretçiler, türler ve değerlerle birlikte
formDatadizisinde 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 adresiphonePush- Push bildirimleri için telefon numaraları dizisiphoneSMS- SMS bildirimleri için telefon numarası
📊 Hızlı Referans Tablosu
| Yöntem | Açıklama | Kullanım Durumu |
|---|---|---|
| getUser() | Yetkilendirilmiş kullanıcı verilerini al | Mevcut kullanıcı profilini al |
| updateUser() | Kullanıcı bilgilerini güncelle | Profil güncellemeleri, durum değişiklikleri |
| archiveUser() | Kullanıcı hesabını arşivle | Kullanıcı hesabını yumuşak silme |
| deleteUser() | Kullanıcıyı kalıcı olarak sil | Kullanıcı hesabını sert silme |
| addFCMToken() | Push bildirimleri için FCM token'ı ekle | Push bildirimlerini etkinleştir |
| deleteFCMToken() | FCM token'ını kaldır | Push 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
- AuthProvider Modülü - Kullanıcı kimlik doğrulaması için gereklidir
- OneEntry Yönetim Paneli - Kullanıcılar - Resmi yönetim paneli belgeleri
- Kimlik Doğrulama En İyi Uygulamaları
- Şifre Güvenliği
- Siparişler Modülü - Sipariş geçmişi için kullanıcıları referans alır
- Ödemeler Modülü - Ödeme geçmişi için kullanıcıları referans alır