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

ruby-on-rails – 会话如何在Rails中运行

发布时间:2020-12-17 02:49:31 所属栏目:百科 来源:网络整理
导读:我了解rails中的会话.大多数参考文献都说,以下是创建会话的方法. 例: session[:id]=user.id Session是一个全局哈希.我的疑问是,如果session是一个全局哈希,那么如果有多个用户尝试登录,那么会话变量就会得到 是否覆盖?因为,只有一个全局哈希.因此,如果有数
我了解rails中的会话.大多数参考文献都说,以下是创建会话的方法.

例:

session[:id]=user.id

Session是一个全局哈希.我的疑问是,如果session是一个全局哈希,那么如果有多个用户尝试登录,那么会话变量就会得到
是否覆盖?因为,只有一个全局哈希.因此,如果有数百万用户登录,那么“session [:id]”如何保持相同
所有用户会话.是否可以在单个变量中存储多个值.以及如何删除特定的会话
用户.那么,如何在rails中处理会话?

解决方法

session不是全局哈希.它是一种在每个请求的上下文中返回新哈希的方法.如何创建哈希取决于底层会话存储.

我们来看看2个典型的会话商店.

加密的cookie商店

这是Rails应用程序的默认会话存储. Rails序列化然后将整个会话哈希加密成cookie,并将这些cookie存储在客户端(例如浏览器)上.每次请求到达Rails应用程序时,Rails解密然后将该会话cookie反序列化为哈希.该哈希是方法会话返回的内容.

Redis会话商店

此会话存储不随Rails一起提供.这是一个独立的宝石.

使用此会话存储,Rails序列化会话,为其提供ID(称为会话ID),并将ID哈希对存储到Redis中.然后Rails将会话ID设置为cookie并将该cookie发送给客户端.每次请求到达Rails应用程序时,Rails都会从cookie中检索会话ID,从Redis获取与该会话ID关联的序列化会话,并将其反序列化为哈希.该哈希是方法会话返回的内容.

(编辑:李大同)

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

    推荐文章
      热点阅读