Tôi đang phát triển một API cũng sẽ có thành phần xác thực/ủy quyền. Bất kỳ ai, bất kể trạng thái xác thực, sẽ có thể viết (POST), nhưng tùy thuộc vào việc bạn chưa được xác thực, được xác thực là người dùng bình thường hay được xác thực là quản trị viên và tài nguyên nào bạn đang cố gắng truy cập, tôi sẽ để trả về các câu trả lời khác nhau cho GET, DELETE và PUT.Tôi có nên trả lại mã phản hồi 401 hoặc 405 cho người dùng REST API mà không có quyền truy cập đầy đủ không?
Tôi đang cố gắng tìm ra mã phản hồi thích hợp nhất cho người dùng không được xác thực và/hoặc được ủy quyền.
Hãy nhớ http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html:
trái phép -> 401
Forbidden -> 403
Phương pháp không được phép -> 405
Hãy sử dụng một ví dụ cụ thể:
- John Doe chưa được xác thực, DELETE có nhận được 401 hoặc 405 không?
- Amy được xác thực nhưng không được ủy quyền, trên DELETE cô ấy có nhận được 403 hoặc 405 không?
(Hãy ghi nhớ rằng mặc dù John và Amy cấm hoặc trái phép đó không có nghĩa họ arent thể truy cập vào tài nguyên cùng với một ĐỘNG TỪ HTTP khác nhau.)
Cảm ơn.
Xem thêm http://stackoverflow.com/questions/3297048/403-forbidden-vs-401-unauthorized-http-responses – Ryan
Vì vậy, John sẽ nhận được 401, Amy sẽ nhận được 403. – Ryan
405 Phương pháp không được phép có vẻ [hoàn toàn không liên quan] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html). – Ryan