SMS OTP Doğrulama
SMS OTP (Tek Kullanımlık Şifre), misafirlerin telefon numaralarıyla kimlik doğruladığı en yaygın kullanılan AnchorSpot yöntemidir. Kullanıcı deneyimi sade, kurulum hızlıdır ve Türkiye'deki 5651 uyumluluk gereksinimlerini karşılar.
Nasıl Çalışır?
Misafir → Telefon numarası girer → SMS gönderilir → OTP kodu girer → Bağlantı sağlanır
- Misafir captive portal'da telefon numarasını girer.
- AnchorSpot, VatanSMS API'si üzerinden OTP içeren bir SMS gönderir.
- Misafir aldığı kodu portal'a girer.
- Kod doğrulanır; MAC adresi kabul listesine eklenir ve oturum başlar.
API Akışı
OTP Talebi
curl -X POST https://<portal-host>/api/v1/hotspot-portal/sms/request \
-H "Content-Type: application/json" \
-d '{
"phone": "+905321234567",
"mac": "aa:bb:cc:dd:ee:ff",
"ssid": "Misafir-WiFi"
}'
Başarılı yanıt:
{ "status": "sent", "expires_in": 300 }
OTP Doğrulama
curl -X POST https://<portal-host>/api/v1/hotspot-portal/sms/verify \
-H "Content-Type: application/json" \
-d '{
"phone": "+905321234567",
"code": "4821",
"mac": "aa:bb:cc:dd:ee:ff"
}'
Başarılı yanıt:
{ "status": "authorized", "session_id": "sess_abc123", "redirect_url": "https://..." }
Konfigürasyon
AnchorSpot yönetim konsolunda Ayarlar → Kimlik Doğrulama → SMS bölümünden aşağıdaki parametreler yapılandırılır:
| Parametre | Açıklama | Varsayılan |
|---|---|---|
SMS_PROVIDER | SMS sağlayıcısı (vatansms, netgsm, twilio) | vatansms |
SMS_API_KEY | Sağlayıcı API anahtarı | — |
SMS_SENDER | Gönderen adı / numarası | AnchorSpot |
OTP_LENGTH | Kod uzunluğu (4–6 hane) | 4 |
OTP_EXPIRY_SECONDS | Kodun geçerlilik süresi | 300 |
:::tip VatanSMS Entegrasyonu
VatanSMS varsayılan sağlayıcıdır. API anahtarını vatansms.com yönetim panelinden alabilirsiniz. Gönderen adının SMS operatörü tarafından onaylanmış olması gerekir.
:::
Hız Sınırlama (Rate Limiting)
Kötüye kullanımı önlemek için aynı telefon numarasına 15 dakika içinde en fazla 3 OTP talebi gönderilebilir. Limit aşıldığında API şu yanıtı döner:
{ "error": "rate_limited", "retry_after": 847 }
retry_after değeri saniye cinsinden kalan bekleme süresini gösterir.
Uluslararası Numara Desteği
Telefon numaraları E.164 formatında kabul edilir (+[ülke kodu][numara]). Portal, Türkiye numaraları için 0 ile başlayan girişleri otomatik olarak +90 öneki ile normalize eder.
05321234567 → +905321234567
Uluslararası numaralar için SMS sağlayıcınızın yurt dışı gönderim iznine sahip olduğundan emin olun.
KVKK Uyumluluğu
:::info Kişisel Veri Koruma
Telefon numaraları denetim kayıtlarında maskelenerek saklanır. Örneğin +905321234567 değeri loglarda +9053****567 olarak görünür. Ham numara yalnızca aktif oturum süresince şifreli olarak tutulur ve oturum kapandıktan sonra karıştırılmış (hashed) biçimde arşivlenir.
:::
Sorun Giderme
OTP Gelmiyor
- Telefon numarasının doğru formatta girildiğini kontrol edin.
- VatanSMS panelinde gönderim geçmişini inceleyin; numara engellenmiş olabilir.
- Operatör tarafından gönderen adı (sender ID) bloke edilmiş olabilir; alternatif bir gönderen adı deneyin.
- Sunucu günlüklerinde
SMS_PROVIDERbağlantı hatalarını arayın.
Hız Limiti Hatası
Kullanıcı 15 dakika beklemeli ya da Ayarlar → Kimlik Doğrulama → SMS → Rate Limit değeri geçici olarak artırılabilir. Üretim ortamında limitin düşürülmesi önerilmez.
Geçersiz Numara Formatı
Portal E.164 doğrulaması yapar. + olmayan veya çok kısa giriş yapıldığında kullanıcıya anlık hata mesajı gösterilir ve API çağrısı yapılmaz.
:::warning Güvenlik Notu OTP kodunu telefon ekranında başkasına göstermeyin. AnchorSpot hiçbir zaman SMS ile şifre veya OTP istemez; yalnızca siz talep ettiğinizde gönderir. :::