Tôi đang sử dụng Rack để thử triển khai chức năng "Remember Me" trong ứng dụng Sinatra của mình.Đặt giá hết hạn phiên cookie hết hạn theo chương trình
Tôi có thể đặt cookie phiên để hết hạn khi phiên kết thúc hoặc trong thời gian X giây nhưng tôi muốn thực hiện cả hai.
Ví dụ: nếu người dùng đã nhấp "nhớ tôi" thì tôi muốn phiên của họ kết thúc sau X giây. Ví dụ, app.rb tôi có một dòng mà trông như thế này:
use Rack::Session::Cookie, :expire_after => 2592000, #30 days in seconds
:secret => MY_SECRET
Tôi đã cố gắng để làm như sau khi người dùng đăng nhập:
if (!remember_me)
env['rack.session.options'][:expire_after] = nil
end
Tuy nhiên, điều này không thiết lập cookie giá trị.
Có ai biết cách đặt cài đặt này không?
Xin cảm ơn trước.
Đừng quên rằng nếu sau đó bạn đặt/xóa mọi thứ trong phiên băm, cookie sẽ hoàn nguyên về ngày hết hạn mặc định (ví dụ: cookie phiên). Để làm cho nó tồn tại thông qua các thay đổi tiếp theo, bạn sẽ cần lưu trữ cờ đánh dấu trạng thái "nhớ tôi" trong chính phiên băm. –