Server IP : / Your IP : 10.244.4.16 [ Web Server : nginx/1.25.3 System : Linux escuela-portal-app-54f56585bc-kst6g 5.15.0-1084-azure #93-Ubuntu SMP Sat Mar 15 14:12:29 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.2.13 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, Domains : 0 Domains MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /proc/449/cwd/app/vendor/laravel/fortify/src/ |
Upload File : |
<?php namespace Laravel\Fortify; use Illuminate\Contracts\Cache\Repository; use Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider as TwoFactorAuthenticationProviderContract; use PragmaRX\Google2FA\Google2FA; class TwoFactorAuthenticationProvider implements TwoFactorAuthenticationProviderContract { /** * The underlying library providing two factor authentication helper services. * * @var \PragmaRX\Google2FA\Google2FA */ protected $engine; /** * The cache repository implementation. * * @var \Illuminate\Contracts\Cache\Repository|null */ protected $cache; /** * Create a new two factor authentication provider instance. * * @param \PragmaRX\Google2FA\Google2FA $engine * @param \Illuminate\Contracts\Cache\Repository|null $cache * @return void */ public function __construct(Google2FA $engine, Repository $cache = null) { $this->engine = $engine; $this->cache = $cache; } /** * Generate a new secret key. * * @return string */ public function generateSecretKey() { return $this->engine->generateSecretKey(); } /** * Get the two factor authentication QR code URL. * * @param string $companyName * @param string $companyEmail * @param string $secret * @return string */ public function qrCodeUrl($companyName, $companyEmail, $secret) { return $this->engine->getQRCodeUrl($companyName, $companyEmail, $secret); } /** * Verify the given code. * * @param string $secret * @param string $code * @return bool */ public function verify($secret, $code) { if (is_int($customWindow = config('fortify-options.two-factor-authentication.window'))) { $this->engine->setWindow($customWindow); } $timestamp = $this->engine->verifyKeyNewer( $secret, $code, optional($this->cache)->get($key = 'fortify.2fa_codes.'.md5($code)) ); if ($timestamp !== false) { if ($timestamp === true) { $timestamp = $this->engine->getTimestamp(); } optional($this->cache)->put($key, $timestamp, ($this->engine->getWindow() ?: 1) * 60); return true; } return false; } }