OTP kódy¶
Entity: OtpCode (tabulka otp_codes)
Funkce: client_auth — akce request_otp, verify_otp, request_registration_otp, verify_registration_otp, request_phone_verification_otp, verify_phone_verification_otp
Prověřeno proti commitu: rozpracováno
Testy: backend/tests/Feature/Audit/OtpCodeAuditTest.php
Routy¶
| Routa | Perimetr | Ochrana | Controller |
|---|---|---|---|
POST /api/public/client_auth request_otp |
veřejný klientský | rate limit kontakt/IP, odeslání e-mailu nebo SMS demo kód | FunctionsController::clientAuth |
POST /api/public/client_auth verify_otp |
veřejný klientský | OTP hash, účel login, expirace, jednorázové použití |
FunctionsController::clientAuth |
POST /api/public/client_auth request_registration_otp |
veřejný klientský | rate limit kontakt/IP, e-mail | FunctionsController::clientAuth |
POST /api/public/client_auth verify_registration_otp |
veřejný klientský | OTP hash, účel registration, expirace, jednorázové použití |
FunctionsController::clientAuth |
POST /api/public/client_auth request_phone_verification_otp |
veřejný klientský | existující klient, rate limit kontakt/IP, SMS | FunctionsController::clientAuth |
POST /api/public/client_auth verify_phone_verification_otp |
veřejný klientský | OTP hash, účel phone_verification, expirace, jednorázové použití |
FunctionsController::clientAuth |
Opravené nálezy¶
Žádné otevřené ani opravené nálezy pro tento zdroj.
Ověřené bez nálezu¶
- Nová OTP výzva zneplatní starší nepoužitý kód pro stejný kontakt, typ kontaktu a účel.
- OTP kód se v databázi ukládá jako HMAC hash, ne jako čitelný šestimístný kód.
- Úspěšné ověření OTP kód označí jako použitý, zapíše čas použití a stejný kód už nejde použít znovu.
- Kód po překročení limitu pokusů se odmítne a zneplatní.
- Ověření rozlišuje účel kódu (
login,registration,phone_verification) už v existující feature sadě.