【问题标题】:Rails Cookies not Saving - Guest Devise UserRails Cookie 未保存 - 来宾设计用户
【发布时间】:2019-06-12 06:06:34
【问题描述】:

我正在按照设计方法为我的 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 上检查会话到期时,它的浏览器关闭不是应该的那样永久。我也尝试明确设置到期日期,但仍然遇到同样的问题

有人知道这个问题和可能的解决方案吗?

【问题讨论】:

    标签: ruby-on-rails ruby http cookies devise


    【解决方案1】:

    试试这个

    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
    })
    

    【讨论】:

    • 谢谢,但同样的行为仍然适用。你以前试过吗?您是否知道是否应该进行其他配置?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多