我一直在使用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。但是,这也给了同样的东西。
非常感谢任何帮助。
答案 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.php到middlewareGroups
属性,了解为web
组中间件触发了哪些中间件