什麼是正確支持REST端點basic authentication並使用XHR的方法?RESTful端點的身份驗證 - 基本身份驗證和XHR
我正在使用Django REST框架(DRF)創建一組REST端點。這些端點將由一個單頁面應用程序(SPA)通過一組XHR(AJAX)調用以及一個C++應用程序使用。 C++應用程序目前正在使用Qt框架。在Qt框架中,我使用QNetworkAccessManager以及QAuthenticator。 authenticationRequired
信號在401響應中(我目前使用basic authentication)發出「無論何時最終服務器請求身份驗證」,我認爲這是由WWW-Authenticate
標頭驅動的。
我想弄清楚如何在Django REST中設置身份驗證,以使我的SPA和C++應用程序開心。我發佈了這個問題:Why does SessionAuthentication in Django REST Framework Never Return HTTP401,我學到的是如果我將第一個認證類設置爲BasicAuthentication
,我可以從DRF獲得401s(帶有WWW-Authenticate
標頭)。但是,這會導致瀏覽器在收到401時彈出一個模態登錄對話框。
什麼是使瀏覽器很開心並提供帶有WWW-Authenticate
標頭的401s的最佳方式?一個想法是對來自C++應用程序的請求使用一個Authentication類,對於來自瀏覽器的請求使用不同的Authentication類。在Chrome
登錄框: