【发布时间】:2015-05-26 18:21:03
【问题描述】:
在Rails 4.2 应用程序中,我在激活Rememberable 和Timeoutable 模块的应用程序上安装了Devise。
当用户登录时,选择Remember Me,并关闭浏览器tab,当他们打开一个新的tab并返回应用程序时,他们的登录信息将被保留.这与 Chrome、Firefox 和 Safari 一致。
但是,当用户登录时,选择Remember Me 并关闭浏览器app,当他们重新打开浏览器app 时,他们将退出应用程序并打开一个新的浏览器选项卡。这与 Chrome 和 Firefox 一致。另一方面,Safari 可以按需要运行。
当用户关闭 Chrome 和 Firefox 浏览器应用程序时,是否可以保留用户登录凭据?我怀疑这是一个 cookie 问题,但我不知道需要更改哪些设置才能使 cookie 在浏览器 app 关闭之间保持有效。
Windows 和 Mac 平台的行为是一致的。
配置
铬
Settings > Content settings > Cookies > Allow local data to be set = selected
服务器
- Rails 4.2
- 设计 3.4.1
客户端 1
- Mac OSX 10.10.2(优胜美地)
- Chrome 41.0.2272.101(64 位)
- Firefox 36.0.4
- Safari 8.0.4 (10600.4.10.7)
客户端 2
- Windows 7
- 铬 41.0.2272.101 米
- 火狐 36.0.4
用户模型
# models/user.rb
devise :database_authenticatable, :recoverable, :rememberable, :registerable, :trackable, :validatable, :async, :timeoutable
设计配置
# note: User model does have remember_created_at field installed
# config/initializers/devise.rb
Devise.setup do |config|
...
config.remember_for = 2.weeks
config.extend_remember_period = true
config.rememberable_options = { secure: true }
config.timeout_in = 2.weeks
config.expire_auth_token_on_timeout = false
...
end
【问题讨论】:
-
您是否使用默认设计登录视图?另外,您的模型是否具有 remember_created_at 属性?
-
是的,在这两点上。我怀疑这就是浏览器选项卡关闭工作的原因。只是不确定浏览器应用程序是否关闭。
-
检查secure_compare是否失败
-
@HithamS.AlQadheeb 怎么样?
-
@wrburgess 设法解决了这个问题?
标签: ruby-on-rails google-chrome firefox devise warden