Задать вопрос
@Apostol63

Почему не сохраняется авторизация laravel?

Всем доброго дня!

Не могу решить проблему уже несколько дней. Все перекопал и ничего не помогло

У меня свой драйвер сессии (он нужен). Сессии записываются в БД

Вот методы write и read
public function write($sessionId, $data) {

        $payload = $this->getPayload($data);

        if(!$this->exists) {
            $this->read($sessionId);
        }

        if($this->exists) {
            $this->updateSessionActivity($sessionId);
//            return true;
        } else {
            $this->saveNewSession($sessionId, $payload);
//            return true;
        }

        return $this->exists = true;

    }


        public function read($sessionId) {
        $session = $this->model->where('id', $sessionId)->get()->toArray();

        if(isset($session) && !empty($session)) {
            $this->checkTimeActivity($session[0]['last_activity']);
        }

        if($this->exists) {
            return base64_decode($session[0]['payload']);
        }
    }


Сессия в базе сохраняется. Все хорошо
Так же у меня свой middleware, которые, если пользователь не авторизован, отправляет на страницу аутентификации
public function handle($request, Closure $next) {

        if(Auth::check()) {
            return 'check';
//            return $next($request);
        } else {
            return redirect()->route('myloginget');
        }
}


И вот после аутентификации (пользуюсь стандартным loginController) у меня, при обновлении страницы или попытке перехода на другую, аутентификация сбрасывается и откидывает на страницу аутентификации.

Я в loginController после auth::attempt вывожу Session::all() и массив показывает, что пользователь авторизован

5e5f374987bb2991542544.png

Но, как я уже писал выше, при переходе куда либо или обновлении страницы, все сбрасывается.

Что я делаю не так или что я не учел?

Вот настройки session.php
'driver' => env('SESSION_DRIVER', 'customsession'),
    'lifetime' => env('SESSION_LIFETIME', 1440),
    'table' => 'sessions,
    'secure' => env('SESSION_SECURE_COOKIE', false),


Заранее спасибо
  • Вопрос задан
  • 507 просмотров
Подписаться 1 Средний 6 комментариев
Пригласить эксперта
Ответы на вопрос 1
@YakushinIlya
Задача решена!
Именно в Laravel все было правильно, но сессия авторизации терялась сразу после JS редиректа. Я поменял библиотеку JQuery и все заработало. Поставил библиотеку от google:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы