TfaAuthResult
: string
in package
2段階認証の認証結果
Table of Contents
Cases
- DECRYPT_FAILED = 'decrypt_failed'
- INVALID_CODE = 'invalid_code'
- NOT_REGISTERED = 'not_registered'
- SUCCESS = 'success'
Methods
- shouldCountAsLockAttempt() : bool
- この結果を2段階認証の試行ロック(Common::validateLockPost / logLockPost)の カウント対象とすべきか
Cases
SUCCESS
INVALID_CODE
DECRYPT_FAILED
NOT_REGISTERED
Methods
shouldCountAsLockAttempt()
この結果を2段階認証の試行ロック(Common::validateLockPost / logLockPost)の カウント対象とすべきか
public
shouldCountAsLockAttempt() : bool
Why not: 呼び出し側で「DECRYPT_FAILED だけ if で除外し、それ以外は else でまとめて 数える」という書き方にすると、将来 case を追加したときに黙って数え忘れる/数えすぎる 回帰を静的にも動的にも検知できない。判定をこの enum 自身の述語として持たせることで、 呼び出し側のコード構造(if/elseの位置)に依存せずテストで固定できるようにする。 対象外リストを明示し、それ以外は数える側にフェイルセーフする設計にしているのは、 将来 case を追加した際に対象外リストの更新を忘れても「数えすぎて誤ロックする」方向 (安全側)に倒れ、「数え忘れて総当たりを許す」方向には倒れないようにするため。 SUCCESS は失敗ではないため対象外。DECRYPT_FAILED は salt ローテーション等の運用障害でも 起こり正規利用者を誤ってロックしてしまうため対象外。