2014-07-25 37 views
3

我有一堆域名,如store.example.com,user.example.com,intranet.example.com,每個人都可以讀取cookie。不過,我有一個是通過執行類似session[:field] = value如何在Ruby/Sinatra中設置和讀取原始cookie

當我檢查的cookie寫餅乾西納特拉的應用程序,我得到的是這樣的:BAh7CUkiD3Nlc3Npb25faWQGOgZFVEkiRTcwNmUwYTU1MjBmMzUyMTZiYzQ0%0ANjZhZDBkOGFmNmFhN2M3OGIxZTM3NGNjMDZiYmRkNDE2MmVlMDU2MWY2MTQG%0AOwBGSSIJY3NyZgY7AEZJIiVkMWUyYzI0NmEwZThiNjVhM2FlZGJjNWFhMzlk%0AYzc0YQY7AEZJIg10cmFja2luZwY7AEZ7B0kiFEhUVFBfVVNFUl9BR0VOVAY7%0AAFRJIi0xZDQ3MmI3NDZiMjFhNmJlNmYyMmUxMGU1MzI3N2Q5MmVlYmQ1N2Qx%0ABjsARkkiGUhUVFBfQUNDRVBUX0xBTkdVQUdFBjsAVEkiLTY2ZWFlOTcxNDky%0AOTM4YzJkY2MyZmIxZGRjOGQ3ZWMzMTk2MDM3ZGEGOwBGSSIQdXNlcl9zZWNy%0AZXQGOwBGSSIlMjg3NjdkMGVmNmZlOGUwMDIxMDRmODhiZDcwZTI1OTYGOwBU%0A--e8ca14be9bbe63226fd2d6e0f8c0b3946cc66fd0這顯得既base64編碼和加密。

我的問題是我該如何編寫一個'原始'cookie,可以被所有試圖使用它的子域輕鬆讀取?它不需要加密和/或編碼。

回答

4

使用西納特拉餅乾http://www.sinatrarb.com/contrib/cookies.html

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

您也可以讀取請求對象的原始餅乾:

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