mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-29 01:08:56 +00:00
39 lines
992 B
PHP
39 lines
992 B
PHP
<?php
|
|
|
|
namespace App\Support;
|
|
|
|
use PragmaRX\Google2FALaravel\Exceptions\InvalidSecretKey;
|
|
use PragmaRX\Google2FALaravel\Support\Authenticator;
|
|
|
|
class Google2FAAuthenticator extends Authenticator
|
|
{
|
|
protected function canPassWithoutCheckingOTP(): bool
|
|
{
|
|
if (! $this->getUser()->passwordSecurity) {
|
|
return true;
|
|
}
|
|
|
|
return
|
|
! $this->getUser()->passwordSecurity->google2fa_enable ||
|
|
! $this->isEnabled() ||
|
|
$this->noUserIsAuthenticated() ||
|
|
$this->twoFactorAuthStillValid();
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*
|
|
* @throws \PragmaRX\Google2FALaravel\Exceptions\InvalidSecretKey
|
|
*/
|
|
protected function getGoogle2FASecretKey()
|
|
{
|
|
$secret = $this->getUser()->passwordSecurity->{$this->config('otp_secret_column')};
|
|
|
|
if (is_null($secret) || empty($secret)) {
|
|
throw new InvalidSecretKey('Secret key cannot be empty.');
|
|
}
|
|
|
|
return $secret;
|
|
}
|
|
}
|