Файлы cookie laravel не работают после публикации данных

Я использую 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, все работает нормально (у меня нет эха, поэтому все должно быть в порядке), но когда я перехожу на страницу /login, у меня есть «нулевой» ответ. Похоже, куки не установлены. Помощь?


person Paweł Miczka    schedule 10.01.2016    source источник


Ответы (1)


Поскольку вы используете Laravel 5.2, вам нужно убедиться, что все маршруты, которые требуют использования информации о сеансе (например, файлы cookie), находятся внутри группы промежуточного программного обеспечения web.

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

    Route::post('/login', function () {
        // code
    });
});
person patricus    schedule 10.01.2016