【发布时间】:2015-05-21 17:39:03
【问题描述】:
我在 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 是否正在使用它..
【问题讨论】: