Genel Bakış
OneSignal, kullanıcı kimliğine bürünmeyi önlemeye yardımcı olmak için Kimlik Doğrulama adlı gelişmiş bir güvenlik özelliği sunar. Bu özellik, sunucunuzda güvenli bir şekilde oluşturulan JSON Web Token’ları - veya JWT’ler’i kullanır. Abonelik bilgilerini doğrulamak için bu token’lar uygulamanıza ve OneSignal’in API’sine iletilir. Kimlik Doğrulamayı aşağıdakiler için etkinleştirmenizi öneririz:- Kullanıcıları oturum açtırma
- E-posta abonelikleri ekleme
- SMS abonelikleri ekleme
- Kullanıcı kimliklerini değiştirme
Bunu etkinleştirmek için
[email protected] ile iletişime geçin.Önkoşullar
- Yapılandırılmış push platformu olan mevcut bir OneSignal uygulaması.
- Desteklenen SDK’lardan biriyle entegre edilmiş bir mobil uygulama:
Kurulum
1
Yeni anahtarlar oluşturun
OneSignal hesabınızda oturum açın ve Ayarlar > Anahtarlar ve Kimlikler > Kimlik Doğrulama’ya gidin.
Yeni bir anahtar çifti oluşturmak için Yeni Anahtarlar Oluştur’a tıklayın.
PEM dosyasını indirin veya özel anahtarı kopyalayın, özel anahtarı güvenli bir şekilde sakladığınızdan emin olun.

Kimlik Doğrulama yapılandırması

Yeni anahtar çifti oluşturma

Kimlik Doğrulama anahtar çifti
2
Arka ucunuzda doğrulama JWT'si oluşturun
Kimlik doğrulama, son kullanıcıyı OneSignal’e oturum açtırmadan önce kimlik doğrulama sunucunuzla doğrulamanızı gerektirir. Son kullanıcı arka ucunuzla kimlik doğruladığında, token’ı oluşturun ve cihaza gönderilen kimlik doğrulama yanıtına dahil edin. Uygulamanız bir arka uç sunucusu çalıştırmıyorsa, kullanıcıları doğrulamak ve bu token’ları oluşturmak için hafif bir sunucu kurmayı düşünün.Özel anahtar, Kontrol Panelinden indirdiğimiz önceki adımın dosyasındadır.
JWT yükü
JWT aşağıdaki özelliklere sahip olabilir:OneSignal Uygulama Kimliğiniz
Token’ın son kullanma tarihi.
Kullanıcının takma adı.
subscriptions
Yalnızca bir kullanıcıya E-posta ve SMS abonelikleri eklerken gereklidir.
JWT’yi imzalama
JWT’yi ES256 algoritmasını kullanarak imzalayın. JWT’yi OneSignal’e gönderirken doğrulama sorunlarından kaçınmak için arka ucunuzun bu imzalama yöntemini kullanacak şekilde yapılandırıldığından emin olun. Bunu yapmak için bir JWT Kütüphanesi öneririz.jsonwebtoken kullanan örnek:Abonelikleri dahil etme
İdeal olarak, e-posta veya telefon numarası gibi abonelik ayrıntıları, bir kullanıcıyı oturum açtırırken JWT yüküne dahil edilir. Bu ayrıntılar önceden mevcut değilse, doğrulama sunucunuz abonelik bilgileri kullanılabilir hale geldikçe token’ları dinamik olarak oluşturmak için bir uç nokta sağlamalıdır.Örnek: Abonelik eklemek için JWT oluşturma3
`login` yöntemine JWT'yi iletin
Arka ucunuz JWT’yi oluşturduktan sonra, bununla
login yöntemini çağırın. Bu token, e-posta veya SMS aboneliği ekleme gibi herhangi bir değişiklik yapılmadan önce kullanıcının kimliğinin doğrulanmasını sağlar.Oturum açma örneği:4
Handle JWT lifecycle events
You’ll need to implement a dedicated endpoint on your backend to handle scenarios like token invalidation. This endpoint should provide a refreshed JWT when OneSignal requests an update.Example of handling token invalidation and refreshing the JWT:This ensures that when a user’s JWT is invalidated, a new one can be fetched from your backend and passed to OneSignal. You can also use this function to generate a token with an email and phone number, allowing you to manage email and SMS subscriptions if the token created during authentication does not contain them.
5
Enable token identity verification in the dashboard
From Settings > Keys & IDs, toggle Token Identity Verification to enable.
Etkinleştirildikten sonra, uygulamanızın abonelik özgünlüğünü doğrulamak için OneSignal JWT’lerini göndermesi gerekir. Ek olarak, uygulamanızın kimlik doğrulama token sunucunuz tarafından oluşturulan bir JWT kullanarak

Enabling Token Identity Verification
login yöntemini çağırması gerekir.Abonelik ekleme
Mobil uygulamanızdan abonelik eklemek için ekstra adımlar atmanıza gerek yoktur; login yöntemini çağırmak bunu sizin için otomatik olarak halleder.- E-posta ekleyin
- Telefon numarası ekleyin
REST API
Token Kimlik Doğrulama etkinleştirildiğinde, aşağıdaki API’lere yapılan tüm istekler başlıklarda bir bearer token olarak sunucu tarafından oluşturulan bir JWT içermelidir, örneğin,Authorization: Bearer <JWT>.
- Create user
- View user
- Update user
- Delete user
- View user identity
- Create alias
- Delete alias
- Create subscription
- Update subscription