Dav*_*acs 5 ruby sinatra
我有一个使用Sinatra构建的简单Web应用程序,并启用了会话。
如果我理解正确,则会话数据存储在编码的cookie中。随着会话数据的更改,cookie的值也将更改。
我需要一个唯一的会话标识符,在整个会话过程中保持不变。是否有这样的标识符。还是我必须创建自己的独特价值并将其自己存储在会话中?
谢谢!
编辑:在下面的评论中,我想到了一个有用的比较。如果我有一个Java servlet,我将使用JSESSIONID作为唯一标识符。我需要一个等效于JSESSIONID的Sinatra。
And*_*ndy 0
据我所知,JSESSIONID它用于在查询字符串中传递会话,而 Sinatra 没有类似的东西,至少不容易访问。Sinatra 使用 Rack 进行会话管理,默认情况下使用 cookie 来存储所有会话数据。Rack 中还有其他会话选项,例如 memcached,其中唯一的会话 id 存储在 cookie 中,但即便如此,Rack 也将其抽象化,因此您不需要查看会话 id(尽管它仍然可以访问,请参阅文档)。
JSESSIONID
如果您想走这条路,那么请研究一下 Sinatra 中的 Rack 中间件,但如果您需要的只是一个唯一的 ID,那么您自己生成一个并将其存储在会话中可能会更容易。
归档时间:
15 年,5 月 前
查看次数:
5068 次
最近记录:
12 年,8 月 前