Đây là một câu hỏi khái niệm.
Tôi có một ứng dụng khách (di động) cần hỗ trợ hành động đăng nhập chống lại dịch vụ web RESTful. Vì dịch vụ web là RESTful, điều này có nghĩa là khách hàng chấp nhận tên người dùng / mật khẩu từ người dùng, xác minh tên người dùng / mật khẩu đó với dịch vụ và sau đó chỉ cần nhớ gửi tên người dùng / mật khẩu đó với tất cả các yêu cầu tiếp theo.
Tất cả các phản hồi khác trong dịch vụ web này đều được cung cấp ở định dạng JSON.
Câu hỏi đặt ra là, khi tôi truy vấn dịch vụ web chỉ để tìm xem tên người dùng / mật khẩu đã cho có hợp lệ hay không, dịch vụ web có phải luôn phản hồi với dữ liệu JSON cho tôi biết nó thành công hay không, hay nó nên trả về HTTP 200 trên thông tin đăng nhập tốt và HTTP 401 trên thông tin đăng nhập không hợp lệ.
Lý do tôi hỏi là một số dịch vụ RESTful khác sử dụng 401 cho thông tin xác thực không hợp lệ ngay cả khi bạn chỉ hỏi xem thông tin đăng nhập có hợp lệ hay không. Tuy nhiên, sự hiểu biết của tôi về các câu trả lời 401 là chúng đại diện cho một tài nguyên mà bạn không được phép truy cập nếu không có thông tin xác thực hợp lệ. Nhưng tài nguyên đăng nhập NÊN có thể truy cập cho bất kỳ ai vì toàn bộ mục đích của tài nguyên đăng nhập là cho bạn biết liệu thông tin đăng nhập của bạn có hợp lệ hay không.
Nói cách khác, đối với tôi dường như một yêu cầu như:
myservice.com/this/is/a/user/action
sẽ trả về 401 nếu thông tin đăng nhập không hợp lệ được cung cấp. Nhưng một yêu cầu như:
myservice.com/are/these/credentials/valid
không bao giờ được trả về 401 vì URL (yêu cầu) cụ thể đó được cấp phép có hoặc không có thông tin xác thực hợp lệ.
Tôi muốn nghe một số ý kiến xác đáng bằng cách này hay cách khác về vấn đề này. Cách tiêu chuẩn để xử lý vấn đề này là gì và cách tiêu chuẩn để xử lý vấn đề này có hợp lý không?