2012-07-28 82 views
2

當它工作的要求傳遞值作爲參數:如何設置tastypie的授權標頭?

curl "http://localhost:8080/wordgame/api/v1/rounds/?username=test_user&api_key=12345678907a9cb56b7290223165e0a7c23623df&format=json" 

然而,當我試圖通過在作爲標題值這是行不通的。這導致401:

curl -H "Authorization: ApiKey test_user:12345678907a9cb56b7290223165e0a7c23623df" -H "Accept: application/json" http://localhost:8080/wordgame/api/v1/rounds/ 

我使用Tastypie ApiKeyAuthentication

+0

您使用哪種版本的tastypie?你可以運行相同的詳細(-v)。如果它沒有幫助,我建議使用IDE進行一些調試,看看ApiKeyAuthentication的is_authenticated方法會發生什麼。 – 2012-07-28 22:18:50

回答

6

你的頭看起來是正確的假設用戶名/關鍵是正確的..

嘗試從GitHub的主分支版本中,一個從PyPI安裝的pip也不會爲我接受授權標題。

我這樣做:

pip install https://github.com/toastdriven/django-tastypie/tarball/master --upgrade

+0

這個伎倆!感謝您發佈命令來運行升級。 – 2012-07-29 12:55:54

0

對不起增加一些東西是相當多的重複的答案,但我不能評論。我遇到了同樣的問題,正如其他答案所提到的,我不得不更新到最新的代碼,以便在當前版本之後添加該代碼。

有一點需要注意的是,默認情況下,readthedocs上的文檔似乎跟蹤最新的開發版本,而不是特定版本。要改變這一點,你可以點擊屏幕底部的「讓你閱讀文檔」圖片,並選擇你使用的版本。