2016-07-15 106 views
1

我使用Sentinel來驗證用戶身份,並作爲身份驗證的中間件。Laravel 5.1哨兵::的getUser()返回null

中間件代碼:

public function handle($request, Closure $next) 
{ 
    var_dump(Sentinel::guest()); // prints false 
    if (Sentinel::guest()) { 
     if ($request->ajax()) { 
      return response('Unauthorized.', 401); 
     } else { 
      return redirect()->guest('/login'); 
     } 
    } 

    return $next($request); 
} 

控制器代碼:

public function getAccount() { 
    var_dump(Sentinel::guest()); // prints true 
    return Sentinel::getUser(); 
} 

routes.php文件

Route::group(['middleware' => ['auth']], function() { 
    Route::get('api/v1/temp/users/account', 'App\Http\Controllers\[email protected]'); 
} 

然後,如果我瀏覽到api/v1/temp/users/account所述的var_dump()在中間件正在打印假,而後續代碼var_dump()控制器內部正在打印真這似乎無義。

怎麼了?

回答

1

原來我用的是原生的門面,而不是Laravel門面Cartalyst\Sentinel\Laravel\Facades\Sentinel。這是固定的。