【问题标题】:How can I get authlogic to use the Rails session instead of its own cookie?如何让 authlogic 使用 Rails 会话而不是它自己的 cookie?
【发布时间】:2011-03-10 22:10:30
【问题描述】:

我希望 authogic 永远不要设置 user_credentials cookie,而只使用标准的 Rails 会话 cookie。

我看到SessionCookies 之后包含在Authlogic::Session::Session::Base 中。如果我登录我的应用程序然后删除user_credentials cookie,我仍然保持登录状态。所以显然 authlogic 将凭据存储在两个地方并检查两个地方?或者忽略cookie但仍然设置它?我怎样才能让它永远不设置或引用user_credentials cookie?

【问题讨论】:

    标签: ruby-on-rails session cookies authlogic


    【解决方案1】:

    如果您使用 vendored authlogic,那么您可以通过使用和更改“authlogic-2.1.5/lib/authlogic/session/cookies.rb”上的 save_cookie 方法上的一些代码来阻止 user_credentials cookie

    【讨论】:

    • 谢谢,这看起来是一个很好的开始。
    【解决方案2】:

    根据我在这里的问题的答案......

    How can I remove callbacks inserted by vendor code?

    ...这个问题的答案是在我的 UserSession 定义之上执行此操作:

    Authlogic::Session::Base.after_save.delete_if{ |callback| callback.method == :save_cookie }
    class UserSession < Authlogic::Session::Base
    end
    

    【讨论】:

    • 我让它工作了,所以 user_credentials cookie 没有保存,但似乎 Authlogic 需要这个 cookie,而不是仅仅使用 Rails 会话的能力。这里有什么见解吗?
    • @grant 你有没有对此有所了解?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 2021-04-20
    相关资源
    最近更新 更多