Size: a a a

ECMAScript Developers

2021 March 24

MI

Max Ive in ECMAScript Developers
Libron FCB
Всем привет.

Такая проблемка:
В запросе, получаю в header'е от сервера  Set-Cookie где лежат данные которые нужно сохранить. Но браузер его игнорит и не сохраняет.

Подскажите в чем может быть проблема ?  

Note:  Client и Backend разные домены. Подумал CORS, отключил все сесурити, все равно не сохраняет
Возможные причины:
Разные параметры вроде Path и Domain
источник

LF

Libron FCB in ECMAScript Developers
Max Ive
Возможные причины:
Разные параметры вроде Path и Domain
Нужно чтобы были одинаковые ? Если да то какой указывать ? Клиента или АПИ
источник

MI

Max Ive in ECMAScript Developers
Libron FCB
Нужно чтобы были одинаковые ? Если да то какой указывать ? Клиента или АПИ
Domain=<domain-value>

Host to which the cookie will be sent.
• If omitted, defaults to the host of the current document URL, not including subdomains.
• Contrary to earlier specifications, leading dots in domain names (.example.com) are ignored.
• Multiple host/domain values are not allowed, but if a domain is specified, then subdomains are always included.
источник

MI

Max Ive in ECMAScript Developers
Libron FCB
Нужно чтобы были одинаковые ? Если да то какой указывать ? Клиента или АПИ
Хост клиента, т.е. домен с которого присылается html
источник

MI

Max Ive in ECMAScript Developers
Каким образом присылается header Set-Cookie? Есть доступ к бэку?
источник

MI

Max Ive in ECMAScript Developers
Либо пришлите Raw Response в текстовом формате сюда. Я смогу точно сказать в чем причина
источник

LF

Libron FCB in ECMAScript Developers
Max Ive
Либо пришлите Raw Response в текстовом формате сюда. Я смогу точно сказать в чем причина
HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Wed, 24 Mar 2021 11:18:44 GMT
Content-Type: application/json
Content-Length: 6395
Connection: keep-alive
Vary: Accept, Cookie, Origin
Allow: GET, HEAD, OPTIONS
X-Frame-Options: SAMEORIGIN
Access-Control-Allow-Origin: *
Set-Cookie: sessionid=hz7qlis0u39u6bcmxgp6w8z2xmjdf3y3; Domain=staging-test.dental.com; expires=Thu, 23 Sep 2021 02:13:20 GMT; HttpOnly; Max-Age=15778476; Path=/; Secure
источник

LF

Libron FCB in ECMAScript Developers
Max Ive
Каким образом присылается header Set-Cookie? Есть доступ к бэку?
Я его вижу в нетворке (set-cookie), сейчас не понятно как браузер его сохраняет. И почему не сохраняет раз приходит
источник

MI

Max Ive in ECMAScript Developers
клиент сейчас на localhost:<port>?
источник

LF

Libron FCB in ECMAScript Developers
Max Ive
клиент сейчас на localhost:<port>?
Да. На стейджинге тоже самое...
источник

MI

Max Ive in ECMAScript Developers
В таком случае проблема в домене Domain=staging-test.dental.com;
источник

MI

Max Ive in ECMAScript Developers
Есть еще параметр HttpOnly. Он не позволяет получить доступ к Cookie через JavaScript
источник

LF

Libron FCB in ECMAScript Developers
Если домен сайта:
staging-test.dental.com

А бэкенд на
dental.com/api/v1/ ...
то Domain должен быть staging ? правильно понимаю ?
источник

DM

Daniel Manasov in ECMAScript Developers
Libron FCB
Я его вижу в нетворке (set-cookie), сейчас не понятно как браузер его сохраняет. И почему не сохраняет раз приходит
Сохраняет, если зайдёшь на указанный домен, то найдёшь его там
источник

MI

Max Ive in ECMAScript Developers
Libron FCB
Если домен сайта:
staging-test.dental.com

А бэкенд на
dental.com/api/v1/ ...
то Domain должен быть staging ? правильно понимаю ?
Все верно
источник

LF

Libron FCB in ECMAScript Developers
я гуглил, и везде написано что именно к set-cookie через JS нет доступа....поэтому мануально тоже не сохраню видимо.
Надо смотреть в сторону access-control-origin и прочее ..
источник

MI

Max Ive in ECMAScript Developers
Libron FCB
я гуглил, и везде написано что именно к set-cookie через JS нет доступа....поэтому мануально тоже не сохраню видимо.
Надо смотреть в сторону access-control-origin и прочее ..
Есть возможность, но старайтесь не использовать так свои куки. Это откроет всякие эксплоиты
источник

LF

Libron FCB in ECMAScript Developers
Max Ive
Есть возможность, но старайтесь не использовать так свои куки. Это откроет всякие эксплоиты
Ага. Понял. Спасибо. Пойду дальше ковырять 😉👍
источник

DM

Daniel Manasov in ECMAScript Developers
Libron FCB
Ага. Понял. Спасибо. Пойду дальше ковырять 😉👍
Как вариант добавь локалхост как субдомен в etc/hosts
источник

MI

Max Ive in ECMAScript Developers
Есть еще вероятность, что CORS нарушен из-за того что SameSite параметр не указан. Попробуйте на бэке добавить параметр SameSite=None
источник