ruby-on-rails – 会话如何在Rails中运行
我了解rails中的会话.大多数参考文献都说,以下是创建会话的方法.
例: session[:id]=user.id Session是一个全局哈希.我的疑问是,如果session是一个全局哈希,那么如果有多个用户尝试登录,那么会话变量就会得到 解决方法
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关联的序列化会话,并将其反序列化为哈希.该哈希是方法会话返回的内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |