Tại sao khung công tác REST Django thực hiện cơ chế xác thực khác với cơ chế Django tích hợp?Tại sao khung công tác Django REST cung cấp các cơ chế xác thực khác nhau
Để wit, có hai lớp học thiết lập mà người ta có thể cấu hình:
settings.AUTHENTICATION_BACKENDS
mà xử lý việc xác thực Django cấp, vàsettings.REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES']
mà xác nhận ở cấp REST Khung
Vấn đề tôi gặp phải là tôi có một lớp Middleware để kiểm tra xem người dùng có đăng nhập hay không.
Khi sử dụng ứng dụng khách web xác thực qua phiên, điều này hoạt động tốt. Tuy nhiên, từ thiết bị di động hoặc khi chạy bộ thử nghiệm (tức là xác thực bằng tiêu đề HTTP và mã thông báo), phần mềm trung gian phát hiện người dùng dưới dạng AnonymousUser
, nhưng khi chúng tôi truy cập vào lớp khung REST, tiêu đề HTTP Authorization
được đọc và người dùng đã đăng nhập.
Tại sao cả hai điều này không xảy ra TRƯỚC KHI phần mềm trung gian? Hơn nữa, tại sao các phương thức xác thực của REST Framework không dựa vào phần phụ trợ xác thực Django?
Câu hỏi tuyệt vời @BillyBBone. Tôi đang gặp vấn đề tương tự. Bạn đã bao giờ tìm ra cách để xác thực yêu cầu DRF trong phần mềm trung gian của mình chưa? –