Я хотел бы спросить, как вы поддерживали сессию без cookie в первый раз?
Я думаю, что проблема может быть в процессе установки файлов cookie. Я также столкнулся с подобной проблемой до пары недель.
Проблема была в том, что когда я делаю запрос на токен REQUEST, этот запрос является внутренним HTTP-запросом (не через браузер пользователя). В ответ на этот запрос я получаю токен REQUEST и затем устанавливаю его в сеансе пользователя.
$token = getRequestToken();
$_SESSION['token'] = $token;
Однако, если пользователь впервые зашел на мой сайт без сеанса, у него нет файла cookie сеанса для отправки мне. Внутренне на веб-сайте я создал для него сеанс и сохранил в нем токен, но затем вместо отправки ему ответа с включенными заголовками файлов cookie, чтобы он «принял» мой сеанс, я делаю перенаправление на конечную точку авторизации поставщика. Таким образом, пользователь не получает файл cookie сеанса, и когда он возвращается обратно, он как новый пользователь для моего сайта.
Это поток процесса, который произошел со мной:
- создать сеанс пользователя в базе данных
- setcookie (usersession) // добавляем заголовки к возможному ответу
- получить токен запроса
- установить токен в сеансе
- перенаправить пользователя (пользователь не получает сессионный cookie)
- пользователь заходит в точку авторизации
- пользователь возвращается, но он для меня новый пользователь
Мне было бы интересно узнать, была ли у вас похожая проблема :)
С наилучшими пожеланиями