我创建了一个中间件来检查使用Google2fa_enabled = 1的用户是否有Google2fa_secret,如果他们不使用,则需要创建一个。
在中间软件中,我用if-Statement定义了句柄功能,并且在TRUE时,它将用户重定向到/2FA/CREATE。它不起作用,因此我像if(true)
一样进行了IF-Statement,但是用户没有被重定向。当我用return redirect('/2fa/create')
替换return
语句时,它确实重定向,因此使用中间件(也用Laravel Debugbar确认(
中间件本身:
<?php
namespace AppHttpMiddleware;
use Closure;
use IlluminateSupportFacadesAuth;
class checkTwoFactor
{
/**
* Handle an incoming request.
*
* @param IlluminateHttpRequest $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 == ""
(
糟糕,我已经找到了错误。
我需要在该案件中工作的返回语句,因此redirect()
必须是return redirect()