Пропадает сессионная cookie
Столкнулись со странной проблемой. У нас есть сайт, который может принимать платежи. Для осуществления платежа пользователь перенаправляется на сайт Portmone.com, где и осуществляет платеж. Перенаправление осуществляется с помощью специальной формы. После совершения операции, Портмоне перенаправляет пользователя обратно на указанный в форме url post-запросом. В параметрах передается статус операции и т.д. В большинстве случаев все происходит нормально, но иногда пользователь возвращается с пустыми куками, и, соответственно, сайт его не может опознать. Сессия слетает. Я до инициализации сессий логгирую состояние переменной $_COOKIE, и она оказывается просто пустой. Повторюсь, это случается не часто, может один раз из десяти. Я сам лично единожды это наблюдал, ничего особенного при этом я в браузере не делал.
Должен добавить, что Portmone - это не единственный агрегатор, с которым мы сотрудничаем, точно такая же проблема есть еще у одного агрегатора, так что я исключаю, что это их проблема.
По какой причине в принципе могут очищаться cookie? Сессионная кука httponly, ее из скриптов не почистишь.
Сайт работает на php 7.4 + codeigniter3. Для аутентификации используется ion_auth
Ответы (1 шт):
Скорее всего связано с политикой CORS. Проверьте форум: https://forum.codeigniter.com/showthread.php?tid=82384
И попробуйте SameSite=None для cookies. Проблема частая.
Иногда можете встретить проблему с проверкой CSRF (при POST запросе). В этом случае можете проигнорировать маршрут в фильтрах.