4

所以我在设计的可记忆模块上遇到了麻烦。我已经正确实现了所有设置:我将 :rememberable 添加到我的用户模型中,将 remember_created_at 添加到用户表中,并在登录页面上添加了 :remember_me 复选框。

我可以确认,如果用户在没有选中记住我复选框的情况下登录,则创建了一个 cookie,现在过期,并且 remember_created_at 字段设置为 null。如果用户选中复选框,则会在 remember_created_at 字段中保存时间戳,并且 cookie 的到期日期设置为默认 2 周。

所以我遇到的问题:

  1. 如果我不选中记住我复选框并登录,请关闭浏览器,然后返回我仍然登录的应用程序。如果用户不想在浏览器关闭时被记住,这不是想法吗会话被破坏?还是我对此有误解?

  2. 出于测试目的,我将 :remember_for 选项更改为1.minute. 所以我在登录前检查了记住我的框,并验证了 cookie 的过期日期是正确的,并且时间戳保存在 remember_created_at 中。然后我关闭了浏览器并等待了大约 2 分钟。然后我再次打开浏览器,我仍然登录。我是否遗漏了什么,或者我只是没有正确理解可记忆模块?

谢谢。

4

2 回答 2

11

我在使用 Devise Rememberable 时遇到了同样的问题,直到我发现 Chrome 在关闭浏览器后不会使“浏览会话结束”上的会话 cookie 过期,并且启用了“启动时”-“继续我离开的地方”选项设置。

于 2013-09-29T09:20:20.673 回答
2

所以问题是我不是设计宝石。当我测试时,我正在关闭一个浏览器选项卡,而不是整个浏览器。

于 2013-06-05T15:41:52.040 回答