我已經設法擴展TokenAuthentication
,並且在使用請求會話存儲我的令牌時我有一個工作模型,但是當我嘗試將Authorization
作爲頭參數as described here時,我注意到我的響應沒有META變量返回HTTP_AUTHORIZATION 。我也注意到,如果我通過「許可2」作爲頭參數,這是在請求可見:django rest_framework中缺少授權標頭,是apache責備?
{
'_content_type': '',
'accepted_media_type': 'application/json',
'_request': <WSGIRequest
path:/api/test_auth/,
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
COOKIES:{
'MOD_AUTH_CAS_S': 'ba90237b5b6a15017f8ca1d5ef0b95c1',
'csrftoken': 'VswgfoOGHQmbWpCXksGUycj94XlwBwMh',
'sessionid': 'de1f3a8eee48730dd34f6b4d41caa210'
},
META:{
'DOCUMENT_ROOT': '/etc/apache2/htdocs',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTPS': '1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch',
'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
'HTTP_AUTHORIZATION2': 'Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4c',
...
我的第一個猜測是,授權頭被阿帕奇除去,我已經看了幾個小號/ O問題,如果它不符合基本授權和驗證,apache將拋出該值,但我不知道如何允許授權標頭'通過'到Django和WSGIRequest。有誰知道如何解決這個問題?
我也用mod_auth_cas和mod_proxy的,如果改變任何東西..
有一個打開的票證來記錄這個apache行爲:https://github.com/tomchristie/django-rest-framework/issues/488如果有人可以說明一些例如。 Nginx在這方面的行爲也會有所幫助。 –
@Tom Christie,這是你如何使用nginx:proxy_no_cache $ http_pragma $ http_authorization; proxy_cache_bypass $ http_pragma $ http_authorization; proxy_set_header HTTP_AUTHORIZATION $ http_authorization; –
@SalvatoreIovene我在挖掘時看到了一些筆記。推測這隻適用於使用Nginx作爲代理。 (?) –