2010-07-02 37 views
6

Tôi muốn authogic không bao giờ đặt cookie user_credentials và chỉ sử dụng cookie phiên Rails chuẩn.Làm cách nào để tôi có thể sử dụng phiên bản Rails thay vì cookie của riêng mình?

Tôi thấy Session được bao gồm trong Authlogic::Session::Session::Base sau Cookies. Nếu tôi đăng nhập vào ứng dụng của mình và sau đó xóa cookie user_credentials, tôi vẫn duy trì trạng thái đăng nhập. Vì vậy, dường như authlogic đang lưu trữ thông tin đăng nhập ở cả hai nơi và kiểm tra cả hai địa điểm? Hoặc bỏ qua cookie nhưng vẫn thiết lập nó? Làm cách nào để tôi không bao giờ đặt hoặc tham chiếu cookie user_credentials?

Trả lời

5

Theo trả lời cho câu hỏi của tôi ở đây ...

How can I remove callbacks inserted by vendor code?

... câu trả lời cho câu hỏi này là để làm điều này trên nét UserSession tôi:

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

Tôi đã làm việc này để cookie user_credentials không được lưu nhưng có vẻ như Authlogic cần cookie này, thay vì khả năng chỉ sử dụng phiên Rails. Có cái nhìn sâu sắc nào ở đây không? – grant

1

Nếu bạn sử dụng authlogic vendored sau đó bạn có thể ngăn để user_credentials Cookie bằng cách sử dụng và thay đổi một số mã trên phương pháp save_cookie vào "authlogic-2.1.5/lib/authlogic/phiên/cookies.rb"

+0

Cảm ơn, trông giống như một khởi đầu tuyệt vời. –

Các vấn đề liên quan