Что делать если куки в safari сохраняются только после отключения предотвращать перекрестное отслеживание в настройках?
Подскажите пожалуйста, после авторизации на клиенте должны сохранятся куки с токенами, но сохраняются они только если отключить предотвращать перекрестное отслеживание в настройках сафари, но и то во вкладке куки все равно почему-то их не видно, но на сайте видно что авторизован. Таким образом на сервере устанавливаю куки
response.cookie("access", accessToken, {httpOnly: true, sameSite: 'none', secure: true});
Я возможно думаю что это может быть из-за sameSite: none, но если sameSite не указать как none, то тогда куки вообще не сохраняются в любом браузере.
Что делать?
Клиент и сервер размещены на Heroku.
[client].herokuapp.com
[server].herokuapp.com
Ответьте пожалуйста, что делать
Rsa97, значит это баг у сафари? Да и вот с токеном вообще пока не понял где его лучше и защищенно хранить, в localstorage может быть xss, а вот с куки там стоит httOnly, может быть вы какой нибудь хороший вариант предложите? Очень благодарю, надеюсь предложите вариант где хранить токен)
Rsa97, здравствуйте еще раз! Пишу с другого аккаунта, появился вопрос, а если бы домены были такими:
example.com и api.example.com, то есть для сервера просто поддомен api, тогда бы все сохранялось в куках или safari также думал бы что это разные сайты?
qedifa, Если домен не внесён в Public Suffix List, то должно работать.
А вообще, есть ли у вас необходимость выделения API на отдельное доменное имя? Может достаточно example.com/api/?
qedifa, Тут, конечно, зависит от того, что у вас является клиентом, а что сервером.
Если клиент - это страница в браузере, а сервер - набор PHP скриптов, то достаточно разместить эти скрипты в папке api сайта или настроить перенаправление запросов с /api по нужному пути.
Если сервер - отдельный демон, например на node.js, то можно повесить его на отдельный порт того же компьютера и в apache/nginx настроить перенаправление запросов к /api на этот порт.