如何在Ruby / Sinatra中设置和读取原始cookie

时间:2014-07-25 17:11:42

标签: ruby cookies session-cookies

我有很多域名,例如store.example.com,user.example.com,intranet.example.com,每个域都可以读取Cookie。但是,我有一个Sinatra应用程序通过执行session[:field] = value

之类的操作来编写cookie

当我检查cookie时,我得到类似这样的内容:BAh7CUkiD3Nlc3Npb25faWQGOgZFVEkiRTcwNmUwYTU1MjBmMzUyMTZiYzQ0%0ANjZhZDBkOGFmNmFhN2M3OGIxZTM3NGNjMDZiYmRkNDE2MmVlMDU2MWY2MTQG%0AOwBGSSIJY3NyZgY7AEZJIiVkMWUyYzI0NmEwZThiNjVhM2FlZGJjNWFhMzlk%0AYzc0YQY7AEZJIg10cmFja2luZwY7AEZ7B0kiFEhUVFBfVVNFUl9BR0VOVAY7%0AAFRJIi0xZDQ3MmI3NDZiMjFhNmJlNmYyMmUxMGU1MzI3N2Q5MmVlYmQ1N2Qx%0ABjsARkkiGUhUVFBfQUNDRVBUX0xBTkdVQUdFBjsAVEkiLTY2ZWFlOTcxNDky%0AOTM4YzJkY2MyZmIxZGRjOGQ3ZWMzMTk2MDM3ZGEGOwBGSSIQdXNlcl9zZWNy%0AZXQGOwBGSSIlMjg3NjdkMGVmNmZlOGUwMDIxMDRmODhiZDcwZTI1OTYGOwBU%0A--e8ca14be9bbe63226fd2d6e0f8c0b3946cc66fd0似乎是base64编码和加密的。

我的问题是如何编写一个“原始”cookie,所有可以被所有子域尝试使用的cookie都可以轻松阅读?它不需要加密和/或编码。

1 个答案:

答案 0 :(得分:6)

使用Sinatra Cookies http://www.sinatrarb.com/contrib/cookies.html

require "sinatra/cookies"
cookies[:something] = 'foobar'

您还可以在请求对象中读取原始cookie:

request.cookies 

Accessing the Request Object

中所述

还有响应对象的set_cookie方法

response.set_cookie("my_cookie", :value => "value_of_cookie",
                    :domain => myDomain,
                    :path => myPath,
                    :expires => Date.new(2020,1,1))