Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉雷维尔重新认证_Php_Laravel_Laravel 6 - Fatal编程技术网

Php 拉雷维尔重新认证

Php 拉雷维尔重新认证,php,laravel,laravel-6,Php,Laravel,Laravel 6,我有一个问题,当用户使用Laravel6中的中间件按角色登录到仪表板时,我试图重定向用户。但是我很沮丧,我不知道在这种情况下问题出在哪里。请帮忙,谢谢 每个角色都有此路径web.php Route::group([ 'as'=>'user.', 'prefix'=>'user', 'namespace'=>'User', 'middleware'=>['auth','user']], function(){ Route::get('dashboar

我有一个问题,当用户使用Laravel6中的中间件按角色登录到仪表板时,我试图重定向用户。但是我很沮丧,我不知道在这种情况下问题出在哪里。请帮忙,谢谢

每个角色都有此路径web.php

Route::group([ 'as'=>'user.', 'prefix'=>'user', 'namespace'=>'User', 'middleware'=>['auth','user']],
    function(){
        Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});
中间件看起来像

public function handle($request, Closure $next)
    {
        if (Auth::check() && Auth::user()->role->id == 3 ) {
            return $next($request);
        }else{
            return redirect()->route('login');
        }
    }
重定向验证

public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check() && Auth::user()->role->id == 1 ) {
            return redirect()->route('admin.dashboard');
        }elseif (Auth::guard($guard)->check() && Auth::user()->role->id == 2) {
            return redirect()->route('author.dashboard');
        }elseif (Auth::guard($guard)->check() && Auth::user()->role->id == 3) {
            return redirect()->route('user.dashboard');
        }else{
            
              return $next($request);
        }
LoginController

 public function __construct()
    {
        if (Auth::check() && Auth::user()->role->id == 1  ) {
            $this->redirectTo = route('admin.dashboard');
        }elseif (Auth::check() && Auth::user()->role->id == 2  ) {
            $this->redirectTo = route('author.dashboard');
        }elseif (Auth::check() && Auth::user()->role->id == 3  ) {
            $this->redirectTo = route('user.dashboard');
        } else {
            $this->middleware('guest')->except('logout');
        }


        
    }

您的第一个中间件检查用户是否已登录,以及他是否具有角色3

可能会将其更改为:

public function handle($request, Closure $next)
    {
        if (Auth::check()) {
            return $next($request);
        }else{
            return redirect()->route('login');
        }
    }

它工作正常,我猜问题将出现在RedirectIfAuthenticated或LoginController中的某个地方..在构造函数中这样做不会有任何作用。。。会话尚未启动,因此
Auth::check
将始终返回
false
。。。
guest
中间件就是这个地方,你能帮我修一下吗?