asepharyana
c6ed5c5c19
fix(dimentorin): verify-email validates OTP before activating user
- new app_otp_cache table + OtpCache entity (ResourceEnum::OtpCache)
- PostgresOtpRepository upsert/find/delete keyed by email
- register/resend persist otp_hash+expiry after email sent (no orphan OTP)
- verify_email validates via OtpManager::validate_otp_hash, single-use delete
- 8 unit tests pass, e2e verified: wrong OTP 400, correct OTP 200
2026-08-04 23:35:34 +07:00
..
2026-04-02 22:29:08 +07:00
2026-04-02 22:29:08 +07:00
2026-04-02 22:29:08 +07:00
2026-04-02 22:29:08 +07:00
2026-04-02 22:29:08 +07:00
2026-08-04 23:35:34 +07:00
2026-04-02 22:29:08 +07:00
2026-04-02 22:29:08 +07:00
2026-04-02 22:29:08 +07:00
2026-04-02 22:29:08 +07:00
2026-04-02 22:29:08 +07:00