Rails Cookies не сохраняются - Guest Devise User - PullRequest
0 голосов
/ 18 января 2019

Я придерживаюсь подхода Devise для создания гостевых пользователей для моего приложения Rails, https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user

Я использую файлы cookie вместо сессий (как показано ниже), чтобы попытаться сохранить одного и того же пользователя для каждого клиента, однако, когда я закрываю браузер и открываю снова, файл cookie не сохраняется, и создается новый пользователь. Я пробовал это на Chrome и Firefox, и то же самое поведение на обоих.

def create_guest_user
  u = User.new(:name => "guest", :email => "guest_#{Time.now.to_i}#{rand(100)}@example.com", guest: true)
  u.save!(:validate => false)
  cookies.signed.permanent[:guest_user_id] = u.id
  u
end

Когда я проверяю срок окончания сеанса в Chrome, его браузер закрывается не постоянно, как и должно быть. Я также пытался явно установить дату истечения срока действия, но все еще получал ту же проблему

enter image description here

Кто-нибудь имеет представление о проблеме и возможных решениях?

1 Ответ

0 голосов
/ 18 января 2019

попробуйте

response.set_cookie(:guest_user_id, {
  value: u.id,
  path: '/',                 # cookie remains all pages in this domain
  expires: 2.weeks.from_now, # cookie expires after 2 week
  httponly: true,            # prevent javascript modify this cookie
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...