Node.js'de SMS OTP ile 2FA Kurulumu: Property Support API

SMS OTP ile 2FA yaparken en sık yapılan hata, kimlik doğrulamayı iş mantığıyla karıştırmaktır. Mesela bir emlak yönetim formu, telefon numarasından tahmin edip destek kuyruğunu seçmeye çalışırsa, OTP sadece bir giriş akışı değil, iki ayrı sorunu çözmek zorunda kalır. Bunun yerine sınırları net tutmalısın: OTP kısa süreliyse, sadece telefon numarası kontrolünü doğrula; destek türü seçimi (bakım, kiralama, kiracı hesabı) ise form şablonunda kalmalı.

Magnus Nilsson'un dev.to yazısında açıklanan yaklaşım tam da bunu yapıyor. Challenge record (5 dakikalık geçici kayıt), tek kullanımlık doğrulama geçişi ve açık yönlendirme politikası ile sistem basit kalıyor.

Node.js'de bunu kurduğunda, OTP gönderimi için provider SDK'sı zorunlu değildir. HTTP çağrısı yeterli: POST isteğiyle challenge oluştur, doğrulama kodunu SMS ile gönder, kullanıcı kodu geri gönderdiğinde token döndür. Sonra bu token, form payload'ı ile birlikte destek kuyruğuna yönlendirilir, kimlik doğrulama ve iş mantığı ayrı kalır.

Pratik açıdan, beş dakikalık TTL (time-to-live) ayarla; kullanıcı o sürede kodu girmezse challenge sona erer. Veritabanında `challenge_id`, `phone_hash`, `code`, `expires_at` ve `verified` alanlarını tut. Doğrulama sırasında kodu tek kez işle, sonra `verified` bayrağını kapat, böylece aynı kod iki kez kullanılamaz.

Bu mimarinin avantajı, ileride SMS yerine email veya push bildirim geçiş yapman kolay olur. Challenge mekanizması aynı kalır, sadece gönderim kanalı değişir. Destek takımı da kendi şablonlarında kuyruğu yönetir, kimlik doğrulama koduna karışmaz.

konu hakkında tepkinizi verebilirsiniz