2016-02-04 53 views
1

当调度方法Auth::attemptAuth::check回报true,然后重定向到Route admin认证Laravel

class LoginController extends Controller { 

    public function login(LoginRequest $request) 
    { 
     if (Auth::attempt($request->only(['login', 'password']))) { 
      var_dump(Auth::check()); // true 
      return redirect()->intended('admin'); 
     } 

     return back(); 
    } 
} 

路线admin有中间件

class AdminMiddleware 
    { 
     public function handle($request, Closure $next) 
     { 
      var_dump(Auth::check()); // false 

      if (!Auth::check()) { 
       return view('login'); 
      } 

      return $next($request); 
     } 
    } 

,然后重定向方法Auth :: check返回false,这是为什么发生了什么?

+0

这可能是一个会话问题,请检查您的Cookie设置的设置是否正确。 – GiamPy

+0

具体有什么设置?配置 - >会话? –

+0

确保您的管理中间件在会话初始化后出现在“web”组中间件之后。 – Gal

回答

0

替换为您的代码:

use Illuminate\Http\Response; 
use Closure; 
use Auth; 

class AdminMiddleware 
{ 
    public function handle($request, Closure $next) 
    { 
     if (!Auth::check()) { 
      return new Response(view('login')); 
     } 

     return $next($request); 
    } 
} 
+0

不要使用'try this'作为你的答案。好的答案应该提供关于问题和解决方案的解释。如果你确定你的答案是正确的,那么不需要'试试这个',而只是'做这个事情'或'用'替换你的代码'。如果您不确定,请使用评论而不是答案。 – zajonc

+0

感谢您的建议 –