2015-11-19 54 views
0

我正在使用Django 1.6和Oauth2(django-oauth-toolkit),並且該站點通過apache是​​SSL安全的。Django:使用Oauth2和SSL時得到403

  • 當我得到一個令牌,並使用它沒有 SSL - 我到達的API,並得到200
  • 如果令牌是無效的,我得到403,符合市場預期。好。
  • 當我使用SSL 沒有 Oauth2 - 它也通過確定。

但是當我使用它們放在一起SSL和OAuth我得到403

能有人給我一個線索,我失去了什麼?

感謝進步

Hagay。

+0

當你嘗試調用你的oauth回調函數時,你是否收到錯誤信息?您是否使用manage.py runserver來運行服務器? – Mark

+0

使用ssl時,我需要添加和額外的數據嗎? – hagay

+0

不確定您的設置,但有些事情可能會出錯。你需要一個公共地址作爲oauth回調url,你不能在本地運行它。公共主機必須添加到Django設置允許的主機中。如果您使用的是manage.py runserver,請注意它不是ssl準備好的。您需要安裝像django-sslserver這樣的軟件包才能在此模式下支持ssl。 – Mark

回答

2

如果你要使用HTTP授權奇怪的問題,在Apache/WSGI/Django的,但沒有運行manage.py runserver的時候,你可能在你的Apache站點配置需要這個命令:

WSGIPassAuthorization on 

如果設置不打開,然後WSGI「吞下」所有授權標頭,並且不會將它們傳遞給您的Python代碼,顯然是出於安全原因。

查看the WSGI module docs瞭解更多信息。

+0

非常感謝。你救了我! – hagay