Я создал Middleware, чтобы проверить, есть ли у пользователя с google2fa_enabled = 1 google2fa_secret, а когда нет, нужно создать его.
В промежуточном программном обеспечении я определил функцию handle с помощью оператора if, и когда он равен true, он перенаправляет пользователя в / 2fa / create. Это не сработало, поэтому я сделал оператор if наподобие if(true)
, но пользователь не перенаправляется. Когда я заменяю оператор return
после этого на return redirect('/2fa/create')
, он выполняет перенаправление, поэтому используется промежуточное программное обеспечение (также подтверждается с помощью панели отладки Laravel)
Само промежуточное ПО:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class checkTwoFactor
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(true){
redirect('/2fa/create');
}
return $next($request);
}
}
И маршруты:
Route::get('/', function () {
return view('layouts/master');
})->middleware(['auth', 'check2fa']);
Я ожидаю, что пользователь будет перенаправлен в / 2fa / create всегда (и позже, если пользователь вошел в систему, имеет google2fa_enabled = 1 & google2fa_secret == ""
)