gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:48:08 25 4
gpt4 key购买 nike

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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com