Laravel 5.1 Sentinel::getUser() return 空
Laravel 5.1 Sentinel::getUser() return null
我正在使用 Sentinel 对用户进行身份验证并作为 auth 中间件。
中间件代码:
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\UsersController@getAccount');
}
然后,如果我浏览到 api/v1/temp/users/account
,中间件中的 var_dump() 打印为 false,而控制器中的 var_dump() 打印为 true,这似乎是无稽之谈。
怎么了?
原来我使用的是原生外观而不是 Laravel 外观 Cartalyst\Sentinel\Laravel\Facades\Sentinel
。那是固定的。
我正在使用 Sentinel 对用户进行身份验证并作为 auth 中间件。
中间件代码:
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\UsersController@getAccount');
}
然后,如果我浏览到 api/v1/temp/users/account
,中间件中的 var_dump() 打印为 false,而控制器中的 var_dump() 打印为 true,这似乎是无稽之谈。
怎么了?
原来我使用的是原生外观而不是 Laravel 外观 Cartalyst\Sentinel\Laravel\Facades\Sentinel
。那是固定的。