Tôi đã tìm thấy một dạng rò rỉ thông tin khi sử dụng trang trí @login_required và đặt biến LOGIN_URL.Django: vấn đề rò rỉ thông tin khi sử dụng @login_required và thiết lập LOGIN_URL
Tôi có trang web yêu cầu thông tin đăng nhập bắt buộc cho tất cả nội dung. Vấn đề là bạn được chuyển hướng đến trang đăng nhập với tập biến tiếp theo khi đó là một trang hiện có.
Vì vậy, khi chưa đăng nhập và yêu cầu:
http://localhost:8000/validurl/
Bạn thấy điều này:
http://localhost:8000/login/?next=/validurl/
Và khi yêu cầu một phi trang đã có sẵn:
http://localhost:8000/faultyurl/
Bạn thấy điều này:
http://localhost:8000/login/
Hiển thị một số thông tin mà tôi không muốn. Tôi nghĩ về việc ghi đè phương thức đăng nhập, buộc tiếp theo để trống và gọi 'siêu' trên phương thức được phân lớp này.
Một vấn đề khác là một số thử nghiệm của tôi không thành công nếu không có bộ LOGIN_URL. họ chuyển hướng đến '/ accounts/login /' thay vì '/ login /'. Do đó, tại sao tôi muốn sử dụng LOGIN_URL nhưng vô hiệu hóa tính năng 'tự động tiếp theo'.
Bất kỳ ai có thể làm sáng tỏ chủ đề này?
Thanx rất nhiều.
Gerard.
IMO, đó là hành vi bán chính xác. Bạn thực sự nên trả lại 404 cho các tài nguyên không tồn tại và 403 cho các tài nguyên hiện có yêu cầu quyền xem. Nói cách khác, bạn không nên hướng đến trang đăng nhập cho những thứ không tồn tại - hiển thị trang 404 rất trần. –