ruby-on-rails - 在 Chrome/Firefox 浏览器应用程序关闭后,Devise Rememberable 无法正常工作

标签 ruby-on-rails google-chrome firefox devise warden

Rails 4.2申请,我有Devise安装在带有 Rememberable 的应用程序上和 Timeoutable模块激活。

当用户登录时,选择 Remember Me , 并关闭浏览器 标签 ,当他们打开一个新的 时,他们的登录信息会被保留。标签 并返回应用程序。这与 Chrome、Firefox 和 Safari 一致。

但是,当用户登录时,选择 Remember Me并关闭浏览器应用 ,他们在重新打开浏览器时退出应用程序应用 并打开一个新的浏览器选项卡。这与 Chrome 和 Firefox 一致。另一方面,Safari 可以按需要工作。

用户关闭 Chrome 和 Firefox 浏览器时是否可以保留用户登录凭据 应用程序 ?我怀疑这是一个 cookie 问题,但我不知道需要更改哪些设置才能使 cookie 在浏览器之间保持有效 应用 关闭。

Windows 和 Mac 平台之间的行为是一致的。

配置

Chrome

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 位)
  • 火狐 36.0.4
  • Safari 8.0.4 (10600.4.10.7)

  • 客户 2
  • window 7
  • Chrome 41.0.2272.101 m
  • 火狐 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
    

    最佳答案

    这也发生在我身上,解决方法是添加 expire_after手动进入 config\initializers\session_store.rb .

    Rails.application.configure do
      config.session_store :cookie_store, key: '_my_app_session', expire_after: 2.years
    end
    
    注意:替换_my_app_session使用您的 cookie 名称,您可以在生产或暂存中打开页面时在浏览器上查看 right click > inspect > application > cookies

    关于ruby-on-rails - 在 Chrome/Firefox 浏览器应用程序关闭后,Devise Rememberable 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29215697/

    相关文章:

    javascript - Firefox 和 Google Chrome 中的 Jquery 问题?

    ruby-on-rails - 使用 Virtus 的 Rails 表单对象 : has_many association

    ruby-on-rails - 用于创建 Google Analytics 类型图表的最佳图形/图表工具集是什么?

    ruby-on-rails - 创建具有关联的模型实例

    google-chrome - Chrome 55 更新后,基于 AudioContext 的库会停止工作吗?

    javascript - 如何保护chrome打包的app源代码?

    css - Firefox 和 Chrome 的 margin 值

    Firefox 上的 CSS 比例转换问题

    javascript - Firefox 与 Chrome 的 iMacros

    ruby-on-rails - 在Rails应用程序中嵌入Youtube视频