Пропадает сессионная cookie

Столкнулись со странной проблемой. У нас есть сайт, который может принимать платежи. Для осуществления платежа пользователь перенаправляется на сайт Portmone.com, где и осуществляет платеж. Перенаправление осуществляется с помощью специальной формы. После совершения операции, Портмоне перенаправляет пользователя обратно на указанный в форме url post-запросом. В параметрах передается статус операции и т.д. В большинстве случаев все происходит нормально, но иногда пользователь возвращается с пустыми куками, и, соответственно, сайт его не может опознать. Сессия слетает. Я до инициализации сессий логгирую состояние переменной $_COOKIE, и она оказывается просто пустой. Повторюсь, это случается не часто, может один раз из десяти. Я сам лично единожды это наблюдал, ничего особенного при этом я в браузере не делал.

Должен добавить, что Portmone - это не единственный агрегатор, с которым мы сотрудничаем, точно такая же проблема есть еще у одного агрегатора, так что я исключаю, что это их проблема.

По какой причине в принципе могут очищаться cookie? Сессионная кука httponly, ее из скриптов не почистишь.

Сайт работает на php 7.4 + codeigniter3. Для аутентификации используется ion_auth


Ответы (1 шт):

Автор решения: ozornick

Скорее всего связано с политикой CORS. Проверьте форум: https://forum.codeigniter.com/showthread.php?tid=82384

И попробуйте SameSite=None для cookies. Проблема частая.

Иногда можете встретить проблему с проверкой CSRF (при POST запросе). В этом случае можете проигнорировать маршрут в фильтрах.

→ Ссылка