Я использовал пакет "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,
];
Я хочу, чтобы мое промежуточное программное обеспечение работало во время входа в систему и во время внутренней передачи (если включено). Но сейчас только один из них работает в одном сеансе входа в систему.