3 namespace BookStack\Auth\Access\Mfa;
5 use Illuminate\Contracts\Validation\Rule;
7 class TotpValidationRule implements Rule
11 protected $totpService;
14 * Create a new rule instance.
15 * Takes the TOTP secret that must be system provided, not user provided.
17 public function __construct(string $secret)
19 $this->secret = $secret;
20 $this->totpService = app()->make(TotpService::class);
24 * Determine if the validation rule passes.
26 public function passes($attribute, $value)
28 return $this->totpService->verifyCode($value, $this->secret);
32 * Get the validation error message.
34 public function message()
36 return trans('validation.totp');