Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 12.08.2017 16:32:36

После логина не записывается что клиент залогинен

Такая ситуация что в HomeController
в который после логина перекидывает
есть в конструкторе вот такая строка
public function __construct()
    {
    $this->middleware('auth');
    }
если я ее убираю попадаю в Home controller
но она ж наверное и нужна чтобы без логина туда не заходили
А если до него прописать  dd(Auth::user()->id);
Получаю ошибку что такого объекта нет,
Выходит нет авторизации?
Auth::check() = false
Как найти косяк?
Хотя я залогиниваюсь этому свидетельствует вот этот вывод
protected function sendLoginResponse(Request $request)
    {
        $request->session()->regenerate();
        $this->clearLoginAttempts($request);
        dd($this->authenticated($request, $this->guard()->user())
        ?: redirect()->intended($this->redirectPath()));
    }
Здесь не происходит редирект а есть конкретный респонс с путем куда нужно перенаправить в случае успешного логина
Может что то с сесиями и не хранится Auth:user() Как это проверяется?

Не в сети

#2 12.08.2017 16:50:39

Re: После логина не записывается что клиент залогинен

В 5.3+ нельзя пользоваться сессиями в конструкторе контроллера.

In previous versions of Laravel, you could access session variables or the authenticated user in your controller's constructor. This was never intended to be an explicit feature of the framework. In Laravel 5.3, you can't access the session or authenticated user in your controller's constructor because the middleware has not run yet.

https://laravel.com/docs/5.3/upgrade#5. … nstructors

Изменено AlexeyMezenin (12.08.2017 16:51:10)

В сети

#3 12.08.2017 16:58:58

Re: После логина не записывается что клиент залогинен

Это что значит что нельзя проверять таким образом в конструкторе?
$this->middleware('auth');?
Я убрал этот мидлвеар из конструктора но по прежнему нет залогиненого пользователя

Изменено imediasun (12.08.2017 17:05:21)

Не в сети

#4 12.08.2017 21:19:12

Re: После логина не записывается что клиент залогинен

Так ты подключаешь посредника auth к методам контроллера. Я говорю о том, что auth()->check() не будет работать в конструкторе.

В сети

Подвал раздела