Laravel 5.2登录会话不会持续存在

Nau*_*hal 10 php laravel laravel-5 cartalyst-sentinel laravel-5.2

我一直在使用Sentinel在Laravel 5.2上实现一个简单的身份验证系统.

// Route : /login
$success = Sentinel::authenticate(array(
   'email'    => $email,
   'password' => $password,
));

echo $success ? 'Login success' : 'Login failed';
Run Code Online (Sandbox Code Playgroud)

因此,上述代码Login success在验证码之后输出.但是,登录状态不会持久保存到其他请求.即:如果我从其他请求检查身份验证状态,则表示我没有登录!

// Route : test-login
echo \Sentinel::check() ? 'User is logged in' : 'User is not logged in';
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过使用defaut laravel authencation \Auth::attempt.但是,这也给了同样的东西.

非常感谢任何帮助.

Mar*_*łek 21

在Laravel 5.2中,您需要将web组中间应用于您不想使会话工作的所有路线.这是Laravel 5.1的主要变化.

请查看https://laravel.com/docs/5.2/routing#basic-routing

默认的routes.php文件目前看起来像这样:

Route::group(['middleware' => ['web']], function () {
    // here you should put your routes
});
Run Code Online (Sandbox Code Playgroud)

编辑

您也可以直视https://github.com/laravel/laravel/blob/master/app/Http/Kernel.phpmiddlewareGroups财产知道哪些中间件被用于发射web组中间件

  • Laravel很糟糕.这些新版本在一次又一次的复杂化. (3认同)