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

ruby-on-rails – 会话如何在Rails中运行,第1张

概述我了解rails中的会话.大多数参考文献都说,以下是创建会话的方法. 例: session[:id]=user.id Session是一个全局哈希.我的疑问是,如果session是一个全局哈希,那么如果有多个用户尝试登录,那么会话变量就会得到 是否覆盖?因为,只有一个全局哈希.因此,如果有数百万用户登录,那么“session [:id]”如何保持相同 所有用户会话.是否可以在单个变量中存储多个值. 我了解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关联的序列化会话,并将其反序列化为哈希.该哈希是方法会话返回的内容.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 会话如何在Rails中运行全部内容,希望文章能够帮你解决ruby-on-rails – 会话如何在Rails中运行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1285236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存