Подтвердить что ты не робот

Как установить файлы cookie в ApplicationController?

Мне нужно установить файлы cookie в моем ApplicationController, но я не уверен, как это сделать. Я пробовал использовать файлы cookie - ничего, используя ActionController:: Cookies - ничего. Мне больше не нужно устанавливать и получать файлы cookie, но мне нужно установить их в ApplicationController.

EDIT:

Найден ответ: request.cookies['help'] = 'yes'

4b9b3361

Ответ 1

Что вы понимаете, установив cookie в контроллер приложения? Вы должны установить cookie в браузере, соответствующее некоторому действию контроллера. Если вы хотите установить cookie для всех действий, вы можете подумать об использовании фильтра before и применить этот фильтр ко всем действиям вашего контроллера.

Вы можете установить и удалить файлы cookie, как показано ниже:

   cookies[:key] = {
       :value => 'a yummy cookie',
       :expires => 1.year.from_now,
       :domain => 'domain.com'
     }

     cookies.delete(:key, :domain => 'domain.com')

Обратите внимание, что если вы указываете домен: при настройке файла cookie, вы также должны указать домен при удалении файла cookie.

например. cookies[:user_name] = "david"

Ответ 2

Вы можете упростить использование файлов cookie, которые вы хотите повесить на некоторое время

cookies.permanent[:some_cookie] = "gingerbread"

Ответ 3

Файлы cookie считываются и записываются через файлы cookie ActionController #. Считываемые файлы cookie - это файлы, полученные вместе с запросом; записанные файлы cookie будут отправлены вместе с ответом. Чтение cookie не возвращает сам объект cookie, только его значение.

cookies[:appToken] = {
  value: 'IOWQ92038192319JKNJKW',
  expires: 1.year.from_now,
  domain: 'www.example.com',
  path: '/admin',
  secure: false,
  httponly: false,
}

path - путь, к которому относится этот файл cookie. По умолчанию используется корневой каталог приложения.

secure - передается ли этот файл cookie только на HTTPS-серверы. По умолчанию установлено значение false.

httponly - доступен ли этот файл cookie через сценарий или только через HTTP. По умолчанию false. Если cookie httponly установлен на true, тогда cookie доступен через Javascript. Это установлено в целях безопасности, чтобы защитить куки от перехвата злоумышленником канала связи между браузером и сервером. Тем не менее, прослушивание - не единственный вектор атаки, позволяющий захватить cookie. Злоумышленник может воспользоваться уязвимостью XSS для кражи куки файла аутентификации. Оказывается, для решения этой проблемы можно использовать флаг HttpOnly.

Для дополнительной информации - https://api.rubyonrails.org/v5.2.1/classes/ActionDispatch/Cookies.html