Как использовать 2fa middleware 2 раза за один сеанс входа? - PullRequest
0 голосов
/ 30 мая 2019

Я использовал пакет "Google2FA для Laravel".

Я работаю над проектом, в котором у пользователя есть возможность настроить аутентификацию Google. Если пользователь активировал эту опцию безопасности, ему необходимо ввести одноразовый пароль во время входа в систему и при внутренней передаче.

Случай 1: у пользователя уже была повышенная аутентификация в предыдущем сеансе входа в систему. Теперь, когда пользователь пытается войти, его просят ввести одноразовый пароль. Когда введен правильный пароль, пользователь может продолжить и тогда, когда этот же пользователь пытается сделать внутренний перевод. Пользователь должен перенаправить для аутентификации, но в этот момент промежуточное ПО не работает. Я включил в маршруты:

Route::group(['middleware' => ['auth', 'verifyEmail']], function() {
...
     Route::get('/internal-transfer', 'InternalTransfersController@index')->name('internal-transfer')->middleware('2fa');
});

и во Внутреннем контроллере передачи я включил:

public function __construct()
   {
    $this->middleware('2fa');
}

но это не работает. Промежуточное ПО не делает то, что должно.

Случай 2: когда логин пользователя и аутентификация пользователя не настроены. Теперь после входа в систему пользователь хочет активировать аутентификацию google, чтобы пользователь включил 2FA, а затем пользователь хочет сделать внутреннюю передачу и щелкнуть по внутренней передаче, тогда пользователь перенаправляется для аутентификации, и если пользователь вводит правильный одноразовый пароль, то пользователь может сделать внутренний перечислить. Теперь промежуточное программное обеспечение работает нормально.

Я включил это промежуточное ПО в файл kernel.php

 protected $routeMiddleware = [
 '2fa' => \App\Http\Middleware\Google2FAMiddleware::class,
 ];

Я хочу, чтобы мое промежуточное программное обеспечение работало во время входа в систему и во время внутренней передачи (если включено). Но сейчас только один из них работает в одном сеансе входа в систему.

...