我正在使用 laravel 5.2,我想创建 REST api(简单,只需登录),我有以下代码:
Route::get('/login', function() {
dd(Cookie::get('token'));
});
Route::post('/login', function () {
$name = Request::get('login');
$password = Request::get('password');
if (!empty($name) && !empty($password)) {
$user = App\User::where('name',$name)->first();
if ($user)
{
if ($user->password === sha1($user->salt . $password))
{
$tokenCookie = Cookie::queue('token',sha1($user->name),10);
return Response::make()->withCookie($tokenCookie);
} else {
echo 'nieprawidłowe hasło';
}
} else {
echo 'brak konta w bazie danych';
}
} else {
return 'brak danych';
}
});
问题是 cookie 不起作用。我的意思是,在我发送 POST 信息后,一切正常(我没有任何 echo ,所以应该没问题),但是当我转到/login 页面时,我有“空”响应。看来cookie没有设置。帮忙?
最佳答案
由于您使用的是 Laravel 5.2,因此需要确保任何需要使用 session 信息(例如 cookie)的路由都位于 web
中间件组内。
Route::group(['middleware' => ['web']], function () {
Route::get('/login', function() {
// code
});
Route::post('/login', function () {
// code
});
});
关于php - laravel cookie 在发布数据后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34705872/