. */ declare(strict_types=1); namespace FireflyIII\Http\Middleware; use Closure; use Illuminate\Http\Request; use Log; use Preferences; /** * Class AuthenticateTwoFactor. */ class AuthenticateTwoFactor { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @param string|null $guard * * @return mixed */ public function handle(Request $request, Closure $next, $guard = null) { $is2faEnabled = Preferences::get('twoFactorAuthEnabled', false)->data; $has2faSecret = null !== Preferences::get('twoFactorAuthSecret'); $is2faAuthed = 'true' === $request->cookie('twoFactorAuthenticated'); if ($is2faEnabled && $has2faSecret && !$is2faAuthed) { Log::debug('Does not seem to be 2 factor authed, redirect.'); return redirect(route('two-factor.index')); } return $next($request); } }