Theo tài liệu Django, "nếu SESSION_EXPIRE_AT_BROWSER_CLOSE được đặt thành True, Django sẽ sử dụng cookie có độ dài trình duyệt - cookie hết hạn ngay khi người dùng đóng trình duyệt của họ. Hãy sử dụng điều này nếu bạn muốn mọi người phải đăng nhập mọi thời gian họ mở trình duyệt. "Tại sao không SESSION_EXPIRE_AT_BROWSER_CLOSE = True đăng nhập người dùng khi trình duyệt bị đóng?
Và đó là những gì tôi đã làm bằng cách thêm dòng sau vào tập tin settings.py của tôi (và khởi động lại máy chủ):
# Close the session when user closes the browser
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
Sau đó, tôi đăng nhập vào một trang mà kiểm tra nếu người dùng được xác thực, và sau đó tôi đóng trình duyệt. Khi tôi mở lại trình duyệt và truy cập vào cùng một trang, nó không yêu cầu tên người dùng và mật khẩu vì nó vượt qua bài kiểm tra sau đây:
def check_teacher(request):
result = {}
if request.user.is_authenticated():
...
Tôi đang làm gì sai hoặc thiếu gì? Bất kỳ đề xuất?
Tôi đang sử dụng phiên bản Django 1.3 pre-alpha SVN-13858 trên hệ thống Ubuntu GNU/Linux 10.10 của mình và chạy ví dụ trên bằng máy chủ phát triển Django.
Có thể bạn đã có một cookie lâu dài được lưu trữ trong trình duyệt của bạn từ trước khi bạn thay đổi nó thành một phiên. Thử xóa cookie của bạn. –
Nó hoạt động nhưng chỉ một lần: (Tôi đã xóa cookie và đăng nhập hoạt động trong Firefox của mình (sử dụng Công cụ -> Xóa Lịch sử Gần đây), sau đó đóng trình duyệt và khi tôi cố truy cập lại trang yêu cầu tên người dùng và mật khẩu. sau đó đóng trình duyệt, sau đó mở lại, truy cập vào cùng một trang nhưng lần này nó không hỏi lại. Tôi đã đóng và mở lại một vài lần và tiếc là nó không bao giờ đăng nhập lại cho tôi một lần nữa –