Tag: 会话

使用Rails进行安全且不安全的会话

我有一个电子商务网站,当用户登录时,他们可以使用保存的信用卡数据进行购买。 所以,我想使用安全会话。 但是,我在网站上有非SSL页面,用户也需要登录这些页面。 所以我也希望为这个用户提供一个不安全的会话。 我怎么能用Rails做到这一点?

Rails是否提供默认的会话超时持续时间? 如果是,它在哪里指定?

我已经知道如何在rails app中设置到期时间,这在网上已经很好地记录了。 但我想知道的是在rails中会话到期的默认持续时间是什么,如果有,在哪里可以找到它?

会话是否可以在Heroku上使用多个web dynos?

如果您在Heroku上运行带有多个Web dynos的Rails 3应用程序, 每次你点击应用程序,你通常会连接不同的网络动态? 会话可以在不同的网络动态中工作吗? 它适用于不同的Rails会话存储(ActionDispatch :: Session :: CookieStore,ActiveRecord :: SessionStore和ActionDispatch :: Session :: CacheStore)

用户登录失败后设计重定向

我知道有一个关于它的维基页面 ,但由于我对Rails很新,我在理解该页面时遇到了很多困难。 我不得不为我的用户覆盖注册控制器。 当用户无法登录时,我希望将他重定向到我的自定义登录页面。 但应用程序将他发送到gem内的登录页面。 我怎么能做到这一点? 我应该把这个课程放在哪里,如何更改? 我有多个模型,每个模型都有不同的登录页面。 如何设置每个型号的范围? class CustomFailure ‘secure’) end # You need to override respond to eliminate recall def respond if http_auth? http_auth else redirect end end 结束 Devise是一个强大的gem,但是一些wiki页面并不认为可以有很多新的程序员

显示是否有人正在阅读post

我想显示正在阅读post的人员列表。 在尝试实现该function之前,我想要一些建议。 我首先检查在PostsController调用show动作的PostsController ; 每当一个人观看post时,他都会被记录在正在阅读post的人员名单上。 但是,当他离开阅读post时,我不确定如何从列表中删除此人。 有没有办法使用cookies或sessions来通知用户是否离开某个页面? 一点帮助可以帮助我马上开始! 我很感激任何建议。 谢谢!

会话到期在Rails中不起作用

我试图在一个固定的登录时间段之后使试用用户的会话到期。到目前为止我看过的所有示例都使用session [:expires_at]键,如下所示: session [:expires_at] = Time.now + 100 但是,当我在我的应用程序上尝试时,这似乎无能为力。 我检查cookie,expires头仍然设置为“Session”。 刷新页面也证实了这种怀疑。 我意识到还有其他方法来配置站点范围的会话持续时间,但我不想进行全站点更改。 我只想要使用此会话持续时间配置特定方案。 我的猜测是Rails堆栈中的after_filter正在重置expires_header,但我无法解决这个问题。

可以在rails中来自同一台计算机的浏览器之间共享会话吗?

我有一个场景,多个用户正在使用我的ruby-on-rails(rails版本3+)应用程序来访问xml提要。 对于每个用户会话,这些提要需要不同,但如果用户要从他的浏览器或从提取这些提要的桌面应用程序访问提要,则会话需要保持不变。 我无法根据IP地址指定会话,因为有时多个用户将拥有相同的IP。 有没有办法在rails中共享来自同一台计算机的会话?

测试保持与Rspec签署

我有点难以为你所看到的“保持登录”function写一些rspec测试(以及在哪里),包括google登录。 我在网上找到的例子没什么帮助。 具体来说,我想测试这两种情况。 1 a)用户使用有效凭据登录而未点击“保持登录状态” b)用户关闭浏览器,重新打开它并请求保护页面。 用户不应该看到受保护的页面。 用户应该看到要求他们登录的页面。 2 a)用户使用有效凭据登录并点击“保持登录状态” b)用户关闭浏览器,重新打开它并请求受保护的页面。 用户不应该看到要求他们登录的页面。 应将用户带到受保护的页面。 我第一次尝试解决问题涉及通过删除我存储在会话中的user_id来模拟浏览器关闭(因为它在浏览器关闭时被删除)。 但是,这些测试失败了,因为我在请求规范文件夹中工作,并且无法访问会话变量。 我之前的相关问题: 某些rspec文件中的会话可用,而其他文件中没有。 怎么会? 使用rspec进行这些测试的最佳方法是什么?

Rails – 如何临时存储rails模型实例?

我有一个rails模型实例,需要在请求之间保留,而不保存到数据库。 我正在处理的小应用程序允许客户使用表单编辑实例参数,将表单提交回服务器,然后查看其更改的预览。 只有按下SAVE按钮才能在数据库中更新实例数据。 我正在考虑将这些数据存储在会话中,但是一些实例数据可能很重 – 例如,长整页html字符串,BERT序列化对象等。 最好的方法是什么? 如果有一般的方法,我会很高兴听到它。 更多细节 通常,在这种情况下,没有必要在请求之间保留数据,因为表单数据将跟随我们从请求到请求。 但是,在这种情况下,我们有一个用于预览最近更新数据的iframe。 数据需要保留..不知何故..以便iframe可以从单独的服务器请求获取它。

如何自定义Devise以在会话中存储更多信息?

似乎当Devise记录用户时,只有用户ID存储在会话中。 这意味着每次调用current_user都会导致SQL查询(类似于User.find(:id) )来创建User对象,这在很多情况下是不必要的加载。 例如,我们可能希望在右上方的标题中显示用户的名称,该标题位于布局文件中并在每个响应中呈现。 为此,我们可能只编写current_user.name ,这会导致对users表的SQL查询。 我真的想在会话中存储当前用户的一些基本信息(例如名称和电子邮件),以避免额外的SQL查询。 这个问题的正确解决方案是什么?