Zajmuję się tworzeniem API, które będzie miało również element uwierzytelniania/autoryzacji.Czy powinienem zwrócić kod odpowiedzi 401 lub 405 do użytkownika REST API bez wystarczającego dostępu?
Każdy, niezależnie od statusu uwierzytelnienia, będzie mógł pisać (POST), ale w zależności od tego, czy jesteś nieuwierzytelniony, uwierzytelniony jako zwykły użytkownik lub uwierzytelniony jako administrator i do jakiego zasobu próbujesz uzyskać dostęp Idę aby zwrócić różne odpowiedzi dla GET, DELETE i PUT.
Próbuję znaleźć najbardziej odpowiedni kod odpowiedzi dla użytkownika, który nie jest uwierzytelniony i/lub autoryzowany.
Pamiętaj http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html:
Nieuprawnione -> 401
zabronione -> 403
Method Not Allowed -> 405
użyjmy konkretne przykłady:
- John Doe jest nieuwierzytelniony, na DELETE powinien otrzymać 401 lub 405?
- Amy jest uwierzytelniona, ale nie autoryzowana, w przypadku USUŃ powinna otrzymać 403 lub 405?
(Należy pamiętać, że chociaż John i Amy są zakazane lub nieautoryzowane to nie znaczy, oni nie jest w stanie uzyskać dostęp do tych samych zasobów z innym czasownikiem HTTP.)
Dzięki.
See http://stackoverflow.com/questions/3297048/403-forbidden-vs-401-unauthorized-http-responses również – Ryan
Więc John powinien dostać 401, Amy powinna dostać 403. – Ryan
405 Method Not Allowed wydaje [całkowicie niepowiązane] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html). – Ryan