API & entegrasyon
ManaAuth, RFC 6238 TOTP standardına uyumludur. Uygulama sunucuya bağlanmaz; sizin backend’iniz secret’ı saklar, kullanıcı ManaAuth’ta aynı secret’ı ekler.
1. Secret üretimi
Sunucuda Base32 kodlu rastgele bir secret üretin (önerilen uzunluk: 160 bit / 20 byte). Kullanıcıya bunu QR veya metin olarak gösterin.
otpauth://totp/Issuer:user@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Issuer&algorithm=SHA1&digits=6&period=30
2. QR içeriği
Yukarıdaki otpauth:// URI’sini QR olarak bastırın. ManaAuth kamera ile
tarayıp hesabı ekler.
3. Doğrulama (sunucu tarafı)
Kullanıcı girişte 6 haneli kodu gönderir. Sunucunuz aynı secret ile mevcut 30 sn penceresinde (ve ±1 adım toleransla) TOTP üretip karşılaştırır.
// Pseudocode
expected = TOTP(secret, time_step = floor(now / 30))
valid = code in [TOTP(t-1), TOTP(t), TOTP(t+1)]
expected = TOTP(secret, time_step = floor(now / 30))
valid = code in [TOTP(t-1), TOTP(t), TOTP(t+1)]
4. Parametreler
- Algoritma: SHA-1 (varsayılan), SHA-256 / SHA-512 desteklenebilir
- Digits: 6
- Period: 30 saniye
5. Güvenlik notları
- Secret’ı düz metin loglamayın; şifreli saklayın.
- Kurulumda bir kez gösterin; yeniden göstermek için yeniden kayıt akışı kullanın.
- Rate-limit ve brute-force koruması uygulayın.
Sorular: info@mana.com.tr