2016-07-15 152 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。这是固定的。