在Rails中添加属性或修改Cookie

时间:2019-05-28 18:53:35

标签: ruby-on-rails cookies

我有一个已经在代码中设置的cookie。我只想向其中添加一个标志{httponly: true}。我尝试使用merge方法,但收到错误消息说合并不能应用于字符串。然后,我尝试使用此cookies[:riko_added_http_only] << '; HttpOnly',但在浏览器cookie中看到该cookie不是仅HTTP的。

所以问题是在已经为其分配了一些值之后如何添加/修改cookie属性或标记(如httponlysecure)?

这里有一些例子:

    cookies[:riko_added_http_only] = {
      value: 'rikob',
    }
    ........ Some code here ....................
    cookies[:riko_added_http_only] << '; HttpOnly'

编辑

让我添加更多信息和测试示例:

通过此代码:

    cookies[:secure_true_http_true] = {
      value: 'httpOnly, not Secure',
      httponly: true,
      secure: true
    }
    cookies[:secure_true_http_false] = {
      value: 'Secure NOT HttpOnly',
      httponly: false,
      secure: true
    }
    cookies[:secure_false_http_true] = {
      value: 'Secure and http only',
      httponly: true,
      secure: false
    }

    cookies[:riko_added_http_only] = {
      value: 'rikob',
    }

    cookies[:riko_added_http_only] = {
      value: "#{cookies[:riko_added_http_only]}; HttpOnly"
    }

我得到以下结果: enter image description here

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式更新cookie值:

cookies[:riko_added_http_only]= { 
  value: "#{cookies[:riko_added_http_only]} ; HttpOnly"
}