1

我正在使用 Sentinel 对用户进行身份验证并作为身份验证中间件。

中间件代码:

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();
}

路由.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,这似乎是无稽之谈。

怎么了?

4

1 回答 1

2

原来我使用的是原生外观而不是 Laravel 外观Cartalyst\Sentinel\Laravel\Facades\Sentinel。那是固定的。

于 2016-07-15T19:00:29.177 回答