【问题标题】:When I run an application on non SSL, session expiration stops working当我在非 SSL 上运行应用程序时,会话过期停止工作
【发布时间】:2019-04-07 23:15:43
【问题描述】:

如果我在 SSL 上运行应用程序,使用“记住我”登录,会话会根据config.remember_forsetting 正确过期。切换到 http:// 会使会话过期,忽略 config.remember_for 并反映 config.timeout_in

有解决办法吗?

【问题讨论】:

  • 会话按包含该方案的来源保存,因此您将无法访问它们,一个可能的解决方案是在两者上托管您的网站并将会话保存到数据库,然后如果用户登录在 https 网站上下载内容
  • 我不需要同时运行 SSL 和非 SSL。我只是描述了两者之间的行为差​​异。非 SSL 可以正常工作,但 SSL 不能。

标签: ruby-on-rails ssl devise puma


【解决方案1】:

SSL 或非 SSL 指定设置

config.rememberable_options

还必须使用主机名,例如“example.com”不仅是 IP。

选中“记住我”后,会话过期

config.remember_for

当未选中的“记住我”过期后

config.timeout_in

全部在config/initializer/devise.rb中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多