Установите безопасный cookie с помощью клиентского JavaScript в ios Safari и Chrome

1

При настройке файла cookie с javascript на стороне клиента document.cookie=..., secure атрибут заставляет cookie "быть переданным только через защищенный протокол как https", см. Спецификацию MDN.

Я установил cookie в своем SPA, на стороне клиента (то есть в коде, запущенном браузером) следующим образом:

document.cookie = 'myCookie=myValue;expires=Sun, 31 Dec 2017 23:00:00 GMT;path=/;secure;';

где Sun, 31 Dec 2017 23:00:00 GMT, получен с использованием метода javascript Date toUTCString() и может быть любой датой в отдаленном будущем (имелся отчет с expires проблемами, когда дата меньше 2 часов в будущее, но это не поставлено на карту здесь).

Это работает для Chrome на macOS и на Android, но cookie не установлен ни для Chrome, ни для Safari на iOS. После того, как я выкалывал, я решил, что удаление secure атрибута позволяет установить cookie:

document.cookie = 'myCookie=myValue;expires=Sun, 31 Dec 2017 23:00:00 GMT;path=/;';

Кто-нибудь знает, как я могу установить свой файл cookie для Chrome и Safari на iOS, чтобы он передавался только через https?

Конечно, должен быть способ, и я исследовал многие вопросы SO безрезультатно. Спасибо

Теги:
cookies
google-chrome
safari

1 ответ

0

У меня была такая же проблема, и она начала работать, когда я добавил параметр домена.

document.cookie = 'myCookie=myValue;expires=Sun, 31 Dec 2017 23:00:00 GMT;domain=www.mydomain.com;path=/;secure;';

Подробнее можно найти здесь: Как установить безопасный флаг cookie с помощью javascript

  • 0
    Спасибо за ответ, это не похоже на работу, я добавил свой домен как domain=my-domain-name.herokuapp.com; и cookie все еще не установлен. Я получаю что-то не так?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню