Django中的HTTP_AUTHORIZATION标头

时间:2015-03-18 18:56:54

标签: python django apache

我在django中写了一个简单的检查,它要求在某些请求中传递访问令牌(我使用装饰器)。

    authorization = request.META.get('HTTP_AUTHORIZATION', None)

    # Forbid access when no access token, or an invalid one, is provided
    form = AccessTokenForm({ 'access_token': authorization })
    if not form.is_valid():
        raise exceptions.HttpDeniedException()

这与django的开发服务器一直运行良好,但最近我使用Apache进行部署,现在它不再工作了,因为authorisation变量是None。以前有人遇到过类似的问题吗?客户端将标头传递为Authorization;再次,这在localhost中工作正常,但在远程服务器上却没有。

编辑:我找到了this,它似乎应该有效,但它并没有。实际上,我甚至没有.htaccess文件,添加一个似乎根本没有任何效果。以下是内容:

RewriteEngine On
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(static/.*)$ - [L]
RewriteCond %{REQUEST_URL} !(dispatch.fcgi)
RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

问题是,我甚至不确定Apache是​​否正在使用它。

1 个答案:

答案 0 :(得分:5)

似乎这个问题的门票here。只需将以下内容添加到apache2.conf:

WSGIPassAuthorization on