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

时间:2015-12-30 11:58:25

标签: php laravel laravel-5 laravel-5.2 cartalyst-sentinel

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

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

echo $success ? 'Login success' : 'Login failed';

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

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

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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
});

修改

您也可以直接查看https://github.com/laravel/laravel/blob/master/app/Http/Kernel.phpmiddlewareGroups属性,了解为web组中间件触发了哪些中间件