3 namespace BookStack\Access\Mfa;
6 use Illuminate\Contracts\Validation\ValidationRule;
8 class TotpValidationRule implements ValidationRule
11 * Create a new rule instance.
12 * Takes the TOTP secret that must be system provided, not user provided.
14 public function __construct(
15 protected string $secret,
16 protected TotpService $totpService,
20 public function validate(string $attribute, mixed $value, Closure $fail): void
22 $passes = $this->totpService->verifyCode($value, $this->secret);
24 $fail(trans('validation.totp'));