Laravel auth session cookie не отправляется

Итак, у меня есть довольно простой сценарий входа в Laravel

$email = Input::get('email'); $password = Input::get('password'); if(Auth::attempt(array('Email'=>$email, 'password'=>$password), true)){ return Response::json(array('success' => true,'logged_in'=>Auth::check() )); } 

Я вхожу в систему с действительным адресом электронной почты и паролем. Я поместил «logged_in» в массив ответов точно так же, как тест, и он вернул true после попытки. Тем не менее, cookie «laravel_session» не возвращается в ответ, а последующие вызовы не видят пользователя во время входа в систему. Это происходит только на моем сервере Production, моя локальная среда и тестовая среда работают без проблем.

В качестве другой заметки я заметил, что Response :: json возвращает тип text / html MIME вместо application / json. Я не был уверен, что это вызывает, поэтому я просто установил jQuery.ajax dataType для «json», чтобы обойти его. Это происходит и на моем сервере. У меня все из идей по этому поводу, и я был бы очень благодарен за помощь.

Related of "Laravel auth session cookie не отправляется"

Человек, я забыл, что задал этот вопрос. Но я действительно нашел ответ, и это было действительно глупо, но важно, поэтому я сейчас отвечу.

Глубоко в одном из моих конфигурационных файлов кто-то (возможно, я) вставил пробел перед <? начало файла PHP. Это было до того, как были установлены какие-либо заголовки, и поэтому им не разрешалось изменять (что означает, что файлы cookie не могут быть установлены), поскольку данные уже были записаны в выходной поток. Поэтому, если вы ищете, почему это происходит с вами, убедитесь, что вы это ищете.

Попробуйте удалить второй логический параметр (Auth :: check (array, boolean)) или проверьте, имеет ли таблица пользователя столбец remember_token.

Если вы хотите предоставить функциональность «помнить меня» в вашем приложении, вы можете передать true как второй аргумент метода попытки, который будет удерживать пользователя на неопределенный срок (или до тех пор, пока они не выйдут вручную). Конечно, таблица ваших пользователей должна содержать столбец ign_token, который будет использоваться для хранения токена «запомнить меня».

Кроме того, либо ваш код испорчен (вы сделали опечатку), либо у вас странная структура базы данных, потому что поля электронной почты написаны с прописными буквами.

 array('Email'=>$email, 'password'=>$password) 

в

 array('email'=>$email, 'password'=>$password) 

Вероятно, ваш контроллер работает хорошо и на самом деле устанавливает cookie. Но ваш браузер не может сохранять ваши файлы cookie. Из-за ограничений домена заголовков.

Можете ли вы убедиться, что ваша система cookie работает хорошо. Вы можете проверить поле домена app / config / session.php следующим образом.

 'domain' => null,