[http] RESTful登錄失敗:返回401或自定義響應


0 Answers

Question

這是一個概念性問題。

我有一個客戶端(移動)應用程序,需要支持針對RESTful Web服務的登錄操作。 由於Web服務是RESTful,這相當於客戶端接受用戶的用戶名/密碼,驗證該服務的用戶名/密碼,然後只記得發送該用戶名/密碼以及所有後續請求。

此Web服務中的所有其他響應均以JSON格式提供。

問題是,當我查詢Web服務只是為了找出給定的用戶名/密碼是否有效時,Web服務是否總是以JSON數據響應,告訴我它成功或不成功,或者它應該在良好的憑據和HTTP上返回HTTP 200 401憑據不良憑證。

我問的原因是,即使您只是詢問憑據是否有效,其他一些RESTful服務也會使用401作為錯誤的憑據。 但是,我對401響應的理解是,它們代表了一個沒有有效憑據就無法訪問的資源。 但是登錄資源應該是任何人都可以訪問的,因為登錄資源的全部目的是告訴您憑據是否有效。

換句話說,在我看來,請求如下:

myservice.com/this/is/a/user/action 

如果提供了錯誤的憑證,則應返回401。 但是請求如下:

myservice.com/are/these/credentials/valid

永遠不應該返回401,因為該特定URL(請求)在有或沒有有效憑據的情況下被授權。

我想以這種方式或其他方式聽取一些合理的意見。 處理此問題的標準方法是什麼,並且這是處理邏輯上合適的標準方法嗎?






Related