我试图使用Laravel5.3中的API验证用户的身份。它不起作用。一旦用户在登录后重定向,Auth就不会持久。
路由配置如下:
Route::group(['middleware' => 'web'], function () {
Route::group(['middleware' => 'auth'], function () {
Route::get('/', 'Users\DashboardController@index');
});
// Authentication routes...
Route::get('login', 'Auth\LoginController@getLogin');
Route::post('login', 'Auth\LoginController@postLogin');
Route::get('logout', 'Auth\LoginController@getLogout');
});在LoginController.php中我正在使用
protected $redirectTo = '/';
public function getLogin()
{
return view('auth.login');
}
public function postLogin(Request $request)
{
$this->login($request);
}成功保存在文件中的登录后,不会为路由'/'启动会话。
因此,在'login'路线上:
照明中的dd($session); \Auth\SessionGuard返回#started : true
Store {#153 ▼
#id: "fo9Q8WuBio5BBus70WmzFPZmkXkjsYQlYEHsVHI4"
#name: "laravel_session"
#attributes: array:4 [▼]
#bags: []
#metaBag: MetadataBag {#144 ▼}
#bagData: array:1 [▼]
#handler: FileSessionHandler {#154 ▼}
#started: true}
但是,当路由位于'auth'中间件组中时,'auth'是错误的(在我的例子中是'/')。
我检查了一些,当我将#started路由放到'auth'中间件组之外但在控制器中调用Auth::check()时,'auth'也是假的。
这个问题在5.2 (Auth not persisting in Laravel 5.2 )中似乎已经存在,但是解决方案对我来说并不管用。
请帮助我理解为什么在登录后我不能访问'/'路由。谢谢!
发布于 2016-12-23 09:29:34
更改kernel.php 'api‘
api' => [
'throttle:60,1',
'bindings',
],至
'api' => [
'throttle:60,1',
'bindings',
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Session\Middleware\StartSession::class,
],https://stackoverflow.com/questions/40141538
复制相似问题