加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 在Sinatra中获取唯一的会话ID

发布时间:2020-12-17 03:00:13 所属栏目:百科 来源:网络整理
导读:我有一个使用Sinatra构建的简单Web应用程序,启用了会话. 如果我理解正确,会话数据将存储在编码的cookie中.随着会话数据的变化,cookie的值也会发生变化. 我需要一个在整个会话期间保持不变的唯一会话标识符.有没有这样的标识符.或者我必须创建自己的唯一值并
我有一个使用Sinatra构建的简单Web应用程序,启用了会话.

如果我理解正确,会话数据将存储在编码的cookie中.随着会话数据的变化,cookie的值也会发生变化.

我需要一个在整个会话期间保持不变的唯一会话标识符.有没有这样的标识符.或者我必须创建自己的唯一值并将其存储在会话中吗?

谢谢!

编辑:在下面的评论中我想到了一个有用的比较.如果我有一个Java servlet,我会使用JSESSIONID作为唯一标识符.我需要一个与JSESSIONID等效的Sinatra.

解决方法

据我所知,JSESSIONID用于在查询字符串中传递会话,而Sinatra没有类似的东西,至少不容易访问. Sinatra使用Rack进行会话管理,默认情况下使用cookie来存储所有会话数据. Rack中还有其他会话选项,例如memcached,其中一个唯一的会话ID存储在cookie中,但即使有Rack摘要,所以你不需要查看会话ID(尽管它仍然可访问,see the documentation) .

如果你想走那条路,那么看看在Sinatra中使用Rack中间件,但如果你需要的只是一个唯一的id,那么自己生成一个并将它存储在会话中可能会更容易.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读