2014-01-13 27 views
0

我在Rest Rest Django框架中遇到基本認證問題。當我運行locallhost身份驗證的項目正常工作。我在請求頭(授權:基本cm9vdDoxMjM0)中發送登錄信息。在我的API視圖中,參數request.user返回登錄用戶。 但是,如果我嘗試在服務器上的生產環境中的項目,所以參數request.user返回值「AnonymousUser」。 Django rest framewrok在mod_fcgid服務器上運行。Django rest框架 - 生產中的基本認證

我的.htaccess:

AuthType None 
Allow from All 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /projekty/qgame/mysite.cgi/$1 [QSA,L] 

我的settings.py:

REST_FRAMEWORK = { 
    'DEFAULT_AUTHENTICATION_CLASSES': (
    'rest_framework.authentication.BasicAuthentication', 
    ), 
} 

enter image description here

我認爲會有一個需要修改Apache的配置。你知道它會是什麼嗎?它可以通過像this這樣的東西嗎?

感謝

+0

你有ALLOWED_HOSTS在settings.py中配置好嗎? https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts –

+0

是的,在我的設置中我已經'ALLOWED_HOSTS = ['nlp.fi.muni.cz']'。現在我試圖添加一個'*'值並且沒有改變。 – user2150077

+0

問題是它沒有從請求中獲得價值。當我嘗試,例如'request.META.get('HTTP_REFERER'))或request.META.get('HTTP_HOST'))',以便它正常工作。但'request.META.get('HTTP_AUTHORIZATION'))'返回None。哪裏可能有問題? – user2150077

回答

1

謝謝您的回答。 Hovewer,我讀了幾個主題,並找到了解決方案。當我添加到.htaccess這個重寫規則:

RewriteCond% {HTTP: Authorization}^(. *) 
RewriteRule. * - [E = HTTP_AUTHORIZATION:% 1] 

授權標頭可以已經讀取。

+0

好吧,你應該接受你的回答 –

+0

謝謝,是的,我會接受,但它可能會有兩天.. – user2150077