SameSite= None становится другим файлом cookie

#scala #cookies #playframework #samesite

#scala #файлы cookie #игровая структура #тот же сайт

Вопрос:

Я устанавливаю cookie через заголовки в Scala (2.10) / Play Framework (2.3). Я подумываю о том, чтобы сделать это таким образом, если мне придется обновить фреймворк, чтобы использовать встроенные функции, которые я не могу сделать на данный момент. Ниже приведен мой код для справки:

 Test URL: https://elbtest.s2d6.com/x/?x=camp;z=samp;v=7100096
  
 val cookieString = "949413017=533c892b32cf4a46961a38f8c56b33eb320412596|6386|323064|7100096|14988;SameSite=None;Expires=Wed, 30 Sep 2020 12:45:30 GMT;Path=/;Domain=s2d6.com;Secure"
val finalURL = "https://www.google.com/"
resp = Redirect(finalURL).withHeaders(SET_COOKIE -> cookieString)
  

В браузере устанавливается вышеупомянутый файл cookie ‘949413017‘, но вместе с другим файлом cookie с именем ‘SameSite’. Из-за этого я не могу получить доступ к своему cookie в следующих запросах. PFA ответ в браузере:
введите описание изображения здесь

Версия Chrome: Версия 84.0.4147.89 (официальная сборка) (64-разрядная версия)

ОС: Ubuntu 16.04.6 LTS (XenialXenial Xerus)

Любая помощь в понимании того, почему это происходит, высоко ценится.

Заранее большое спасибо!

Комментарии:

1. Справа от раздела «Заголовки ответов» должна быть кнопка «просмотреть источник»; это покажет необработанные байты, полученные с сервера. Не могли бы вы сделать скриншот или скопировать-вставить это? Если анализатор файлов cookie Chrome неправильно обрабатывает необработанные данные, проанализированная версия мало что вам скажет.

Ответ №1:

Вы вызываете, withHeaders используя SET_COOKIE . Вы должны использовать встроенный файл cookie:

 Redirect(finalURL).withCookies(Cookie("theme", "blue"))
  

См https://blog.knoldus.com/using-cookies-in-play-framework / для примера.

Комментарии:

1. Будет, я использую версию play 2.3, как я уже упоминал в первой строке моего вопроса. Play 2.3 не поддерживает флаг samesite. Я не могу его обновить. Следовательно, я использую заголовки для установки cookie и добавления этого флага.

Ответ №2:

Просто подсказка, если мы используем SameSite=None где-либо в значении Set-Cookie header , то Play Framework ошибочно рассматривает это как начало другого файла cookie !

Как насчет использования стандартного заголовка Set-Cookie ?

Set-Cookie: flavor=choco; SameSite=None; Secure

Обратитесь к https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite