Bloga döntutorial

OTP API: Uygulamanıza SMS Doğrulama Nasıl Eklenir

OTP API: Uygulamanıza SMS Doğrulama Nasıl Eklenir

OTP API Gerçekte Ne Yapar

Tek kullanımlık şifre (OTP) API'si, uygulamanıza bir kullanıcının belirli bir telefon numarasını kontrol ettiğini programatik olarak kanıtlama imkanı verir. Akış yüzeyde basittir. Sunucunuz bir numara ister veya bir kod tetikler, kullanıcı SMS'i alır ve kodu uygulamanıza geri yazar. Bu basitliğin arkasında ise ciddi bir mühendislik vardır: numara formatlama, teslimat zamanlaması, tekrar deneme mantığı, hız sınırlama ve kötüye kullanımı önleme.

OTP doğrulaması internetteki en yaygın güven sinyallerinden biridir. Hesap kayıtlarını kapılar, girişleri korur, yüksek değerli işlemleri onaylar ve botları yavaşlatır. Bunlardan herhangi birini geliştiriyorsanız, bir OTP API'si kendi SMS altyapınızı ve operatör anlaşmalarınızı yönetme yükünden sizi kurtarır.

Bu rehber mimariyi ve vermeniz gereken pratik kararları anlatır. Pazarlama değil, gerçek entegrasyon işine odaklanır.

Ekranda OTP doğrulama kodu akışı gösteren geliştirici çalışma masası

İki Model: Kod Gönderme ve Kod Alma

Kod yazmadan önce sağlayıcınızın hangi modeli kullandığını anlayın. Farklı amaçlara hizmet ederler.

Model A: Kullanıcıya kod gönderirsiniz

Burada sunucunuz (veya API) sayısal bir kod üretir ve bunu kullanıcının verdiği telefon numarasına iletir. Bu, hesap kaydı ve girişi için klasik "kendi telefonunu doğrula" akışıdır. Kodun bir hash'ini saklarsınız, kısa bir süre belirlersiniz ve kullanıcının yazdığını karşılaştırırsınız.

Model B: Numara kiralar ve kod alırsınız

Bu modelde bir katalogdan geçici sanal numara istersiniz, ardından üçüncü taraf bir servisin (WhatsApp, Google, Telegram) o numaraya gönderdiği SMS'i okursunuz. Harici bir platformda hesap doğrulaması yapmanız, kayıt sürecini otomatikleştirmeniz veya birçok ülkede SMS akışlarını test etmeniz gerektiğinde işe yarar. SMSBulk bu modelde dünyanın her yerinden numarayla uzmanlaşmıştır. Kapsamı görmek için SMS doğrulama kataloğuna göz atabilirsiniz.

Her iki model benzer bir API yapısı paylaşabilir. Fark, numaranın kime ait olduğu ve kodu kimin gönderdiğidir.

Temel Mimari

Temiz bir OTP entegrasyonu üç sorumluluğu ayırır:

  1. Sunucunuzda OTP API ile konuşan bir doğrulama servisi.
  2. Bekleyen doğrulamaları süre sınırıyla tutan kısa ömürlü bir depo (Redis iyi çalışır).
  3. Telefon numarasını ve kodu toplayan bir istemci arayüzü.

OTP'leri asla yalnızca istemcide doğrulamayın. İstemci alanları gösterebilir ve sunucunuzu çağırabilir, ancak "bu kod geçerli mi" kararı, bir saldırganın müdahale edemeyeceği sunucu tarafında verilmelidir.

İşte sözde kodla minimal bir sunucu akışı:

POST /verify/start
  girdi: telefonNumarasi
  telefonNumarasini E.164'e normalize et
  OTP_API.request(telefonNumarasi) cagir
  { requestId, telefonNumarasi, deneme: 0 } kaydet, 10 dk TTL
  { requestId } dondur

POST /verify/check
  girdi: requestId, kod
  requestId ile kaydi yukle
  suresi dolduysa veya deneme >= 5 ise -> reddet
  sonuc = OTP_API.check(requestId, kod)
  sonuc.gecerli ise -> telefonu dogrulanmis isaretle
  degilse -> denemeyi artir

Bu yapı mantığınızı test edilebilir ve sağlayıcıdan bağımsız tutar. Sağlayıcı değiştirirseniz yalnızca OTP_API adaptörü değişir.

Telefon Formatlamasını Doğru Yapın

OTP hatalarının çoğu hatalı telefon numaralarından kaynaklanır. Kullanıcılar numaraları onlarca farklı biçimde yazar: boşlukla, tireyle, başında sıfırla veya yerel öneklerle. Herhangi bir şey göndermeden önce E.164'e, yani +905321234567 gibi uluslararası standarda normalize edin.

Regex yerine iyi bakımlı bir ayrıştırma kütüphanesi kullanın. Kütüphaneler ülke kodlarını, gövde öneklerini ve bölgeye göre değişen doğrulama kurallarını yönetir. Ayrıntılı bir döküm isterseniz, E.164 telefon numarası formatı rehberimiz basit uygulamaları bozan uç durumları kapsar.

Saatlerce hata ayıklamaktan kurtaran birkaç kural:

  • Kullanıcının seçtiği ülkeyi saklayın, yalnızca rakamları değil.
  • API'yi çağırmadan önce açıkça geçersiz uzunlukları reddedin.
  • Ham girdiyi destek talepleri için saklayın ama yalnızca normalize edilmiş sürümü gönderin.

Teslimat ve Tekrar Denemeleri Yönetmek

SMS anlık değildir ve garanti değildir. Teslimat süreleri operatöre, ülkeye ve günün saatine göre değişir. Arayüzünüzü ve sunucunuzu mükemmellik değil, gecikme bekleyecek şekilde tasarlayın.

Mantıklı tekrar deneme davranışı

  • "Tekrar gönder" düğmesine izin vermeden önce geri sayım gösterin. Otuz ila altmış saniye tipiktir.
  • Maliyeti ve kötüye kullanımı kontrol için numara başına saatlik tekrar gönderimleri sınırlayın.
  • İki başarısız SMS denemesinden sonra bir yedek kanal sunun. Sesli arama veya e-posta OTP tıkanan bir kaydı kurtarabilir.

Kodlar sürekli ulaşmıyorsa neden genellikle yukarı akıştadır. OTP kodları neden hiç gelmiyor yazımız yaygın operatör ve yönlendirme sorunlarını ve bunları nasıl teşhis edeceğinizi listeler.

Uygulama ile API arasındaki OTP isteği, teslimat ve doğrulama adımları diyagramı

Güvenlik En İyi Uygulamaları

OTP bir güvenlik özelliğidir, bu yüzden uygulamasına özen gösterin.

Kod üretimi ve saklama

  • Temel olarak altı hane kullanın. Dört zayıftır, sekiz kullanıcıyı yorabilir.
  • Kodları kriptografik olarak güvenli rastgele bir kaynakla üretin.
  • Kendiniz üretiyorsanız kodu düz metin olarak değil yalnızca hash olarak saklayın.
  • Sıkı bir süre belirleyin, genellikle beş ila on dakika.

Hız sınırlama ve kötüye kullanım kontrolü

Saldırganlar OTP'leri kaba kuvvetle dener ve gönderme uçlarını kötüye kullanarak faturanızı şişirir (SMS pompalama denen bir örüntü). Birden çok katmanda savunun:

  • İstek kimliği başına doğrulama denemelerini sınırlayın (beş yaygındır).
  • Telefon numarası ve IP başına gönderme isteklerini sınırlayın.
  • Otomatik kötüye kullanım görürseniz gönderme ucuna CAPTCHA ekleyin.
  • Alışılmadık ülke kodlarına ani sıçramaları izleyin.

Kodu asla sızdırmayın

OTP'yi API yanıtlarında, loglarda veya istemci tarafı durumda döndürmeyin. Kodun bulunması gereken tek yer SMS ve hash'lenmiş deponuzdur.

Daha derin bir güvenlik incelemesi için tehdit modellerini ve yanıt işlemeyi daha ayrıntılı anlatan SMS doğrulama API geliştirici rehberimize bakın.

Sağlayıcı Yedeklemesi Eklemek

Tek sağlayıcı tek arıza noktasıdır. OTP API'nizde kesinti olursa kayıtlar aniden durur. Olgun sistemler bunu aşacak şekilde yönlendirir.

Örüntü, iki veya daha fazla arka uca sahip bir adaptör arayüzüdür. Birincili denersiniz ve zaman aşımı veya hatada ikincile düşersiniz. Ölü bir uca sürekli yüklenmemek için sağlayıcı başına sağlığı izleyin. Sağlayıcı yedeklemeli SMS doğrulama rehberimiz sağlık kontrolleri ve yönlendirmeyle tam bir uygulama gösterir.

Tek sağlayıcıyla başlasanız bile adaptör sınırını şimdi tasarlayın. Sıkı bağlı koda sonradan yedekleme eklemek acı vericidir.

Entegrasyonunuzu Test Etmek

Yayınlamadan önce test edin ve ülkeler arası test edin. Yerel numaranızda çalışan bir akış, formatlama veya operatör tuhaflıkları yüzünden başka bir bölgede başarısız olabilir.

Faydalı taktikler:

  • Sağlayıcı sunuyorsa sandbox veya test numaraları kullanın.
  • E.164 normalizasyonunuzu zor örnek numaralardan oluşan bir listeye karşı doğrulayın.
  • Staging ortamında gecikmeli ve başarısız teslimatları simüle edin.
  • Hız sınırlarının gerçekten çalıştığını doğrulamak için gönderme ucunuzu yük testine tabi tutun.

SMSBulk ile gerçek dünya davranışını doğrulamak için birçok ülkeden numara isteyebilirsiniz ve aynı hesap hem SMS doğrulaması hem de diğer ürünler için cüzdanınızı tutar. Referans materyale ihtiyaç duyan geliştiriciler uç noktalar ve yanıt formatları için API dokümantasyonunu okuyabilir.

Maliyet ve Oran Hususları

SMS fiyatlandırması hedef ülkeye göre büyük ölçüde değişir. Bir ülkeye giden kod bir kuruşun altına mal olurken başka biri kat kat pahalı olabilir. Maliyet farkındalığını ürününüze işleyin:

  • Gereksiz yere yeniden doğrulama yapmamak için kullanıcının doğrulanmış durumunu önbelleğe alın.
  • Düşük riskli işlemler için uygulama içi veya e-posta doğrulamasını tercih edin, SMS'i yüksek riskli olanlara ayırın.
  • Pahalı hedefleri saldırı yüzeyine çeviren pompalama dolandırıcılığına dikkat edin.

Küresel yayına geçmeden önce ülke başına maliyetleri tahmin edebilmek için fiyatlandırma genel bakışını inceleyin.

Gezginler ve Uzaktan Ekipler İçin Bir Not

Kullanıcılarınız veya kendi ekibiniz sınırlar ötesinde çalışıyorsa, doğrulama yaptığınız numara ile kullandığınız veri bağlantısı iki ayrı sorundur. Sanal numara SMS kodunu halleder. Veri planı bağlantıyı halleder. SMSBulk ikisini de tek hesaptan kapsar: doğrulama için sanal numaralar ve 200'den fazla destinasyon için SMSBulk eSIM ile seyahat verisi. Seyahat eSIM'leri yalnızca veri olduğundan, birini bir sanal numarayla eşleştirmek, fiziksel SIM değiştirmeden yurt dışındayken doğrulama kodları almanızı sağlar.

Kaçınılması Gereken Yaygın Hatalar

  • İstemcide doğrulama. Geçerliliğe her zaman sunucuda karar verin.
  • Süre olmaması. Süresi hiç dolmayan kod kalıcı bir risktir.
  • Sınırsız deneme. Sınırlayın yoksa kaba kuvvete davetiye çıkarırsınız.
  • E.164'ü yok saymak. Hatalı numaralar en büyük teslimat katilidir.
  • Kodu loglamak. OTP'lere parola gibi davranın.
  • Yedek olmaması. Kötü operatördeki kullanıcılar ikinci bir yolu hak eder.

Bu altısından kaçının, OTP akışınız çoğundan zaten daha sağlam olacaktır.

SMSBulk ile Başlayın

SMS doğrulaması kurmak kendi operatör altyapınızı işletmenizi gerektirmez. SMSBulk size dünyanın her yerinden sanal numaralar, dokümantasyonlu temiz bir API ve e-posta doğrulaması ile seyahat eSIM'lerini de kapsayan tek bir cüzdan verir. Hesap oluşturun, cüzdanınızı yükleyin ve dakikalar içinde OTP akışlarını test etmeye başlamak için ilk numaranızı isteyin. Kullanıcılarınız seyahat ettiğinde aynı hesap onları tek platform üzerinden bağlı ve doğrulanmış tutar.

#otp api#sms verification#developer guide#authentication#api integration

Hesaplarınızı kolayca doğrulamaya hazır mısınız?

190+ ülkeden 30 saniyenin altında anlık SMS kodları alın.

İlgili Makaleler