laravel cookies在发布数据后不起作用

时间:2016-01-10 13:21:02

标签: php laravel cookies laravel-5 laravel-5.2

我正在使用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信息之后一切正常(我没有任何回声,所以它应该没问题)但是当我进入/登录页面时,我有' null'响应。看起来好像没有设置cookie。帮助

1 个答案:

答案 0 :(得分:2)

由于您使用的是Laravel 5.2,因此您需要确保所有需要使用会话信息的路由(例如cookie)都在web中间件组内。

Route::group(['middleware' => ['web']], function () {
    Route::get('/login', function() {
        // code
    });

    Route::post('/login', function () {
        // code
    });
});