3 namespace BookStack\Access\Mfa;
5 use Illuminate\Contracts\Validation\Rule;
7 class TotpValidationRule implements Rule
10 protected $totpService;
13 * Create a new rule instance.
14 * Takes the TOTP secret that must be system provided, not user provided.
16 public function __construct(string $secret)
18 $this->secret = $secret;
19 $this->totpService = app()->make(TotpService::class);
23 * Determine if the validation rule passes.
25 public function passes($attribute, $value)
27 return $this->totpService->verifyCode($value, $this->secret);
31 * Get the validation error message.
33 public function message()
35 return trans('validation.totp');