簡體   English   中英

Laravel 5中間件驗證無法正常工作

[英]Laravel 5 middleware Auth check not working

如果用戶嘗試訪問de admin頁面,如果他沒有登錄或者他沒有“管理員”類型,我想顯示404錯誤頁面。 如果用戶已登錄,則此工作正常,如果不是用戶訪問管理面板。 如果我刪除if(Auth::check()) ,腳本會顯示Trying to get property of non-object錯誤。

class AdminMiddleware {
    public function handle($request, Closure $next)
    {
        if(Auth::check()){
            if ($request->user()->type != 'Admin'){
                return abort(404);
            }
        }

        return $next($request);
    }

}

嘗試這個

class AdminMiddleware {
    public function handle($request, Closure $next)
    {
        if(Auth::check()){
            if ($request->user()->type != 'Admin'){
                return abort(404);
            }
        }else{
            return abort(404);
        }
        return $next($request);
    }
}

它應檢查用戶是否已登錄,如果是,請檢查他和管理員,如果他沒有登錄,則向他顯示404

或更短的版本

class AdminMiddleware {
    public function handle($request, Closure $next)
    {
        if(Auth::check() && $request->user()->type == 'Admin'){
            return $next($request);
        }
        return abort(404);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM