Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
}%Хочешь сказать, что у тебя с web middleware в web.php маршруты нормально с сессией работают?
Вроде пока все нормально. Если возникнут проблемы, отпишусь в этом топе. И спасибо за помощь
Потратил кучу времени, но в итоге разобрался с проблемой. Главная проблема, впрочем как всегда, оказалось в том, что кто-то рукожоп.
При отработка
if (Auth::attempt(['email' => $email, 'password' => $password], true)) { ..
у меня на клиент возвращалась либо строка вида: echo 'success'; , либо json, который отправлялся, опять же, через echo json_encode([]). Проблема именно в том, что если выводить что-то через echo, то перестает работать сессия. Хз почему это так работает, но вот именно так.
Как решение, отдавать результат через return response()->json();
Ах, я балбес)
}%Убери web middleware из маршрутов и сравни свой Kernel.php со стандартным в 5.3 версии.
Kernel.php у меня стандартный, единственное, что не так - закомментирована строка на проверку токена -\App\Http\Middleware\VerifyCsrfToken::class,
Попробовал убрать web - все тоже самое
Дорогие друзья, столкнулся с проблемой, которую опишу ниже, прошу разобраться с ней. К сожалению с Laravel имею опыта маловато, причем работал с 4 версией продукта.
Операционная система: Windows 10 64
Сервер: Open Server с PHP 5.6 и Apatch 2.4
Laravel 5.3
Стоит глобальная задача , "перенести" сайт с 4 версии Ларки на 5.3. Проблема возникла при разработке формы входа на сайте. В связи с тем, что данная форма должна работать на аяксе, было решено отказаться от использования стандартного решения аунтефикации в пользу своего.
Сделал форму, написал аякс обработчик, прописал в роутер маршрут:
Route::post('auth', 'AjaxUserController@auth');
Ну и собственно в данном методе без лишней шелухи всего одна строка:
if (Auth::attempt(['email' => $email, 'password' => $password], true)) { ...
В Laravel 4, это работает без проблем, думал, что и в Laravel 5.3 сложности не будет, но, как говорится, что-то пошло не так
По итогу, метод отрабатывает и возвращает true, как положено. Следом можно вернуть данные о юзере через Auth:user() - все отлично.
Но если обновить страницу, то if(Auth:check()){ ... выдаст false
Какая-то проблема как будто с сессией.
При этом, если воспользоваться дефолтной формой, то все прекрасно работает.
Не пойму вот в чем проблема, кучу всего уже перелопатил и статей и видео, не пойму в чем проблема. Где то читал, что нужно делать middleware дополнительно, в других источниках пишут, что и так должно работать.
Прошу разобраться с ситуацией.