And*_*lli 4 python apache django
我在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()
Run Code Online (Sandbox Code Playgroud)
这在django的开发服务器上运行良好,但是最近我使用Apache进行了部署,现在由于authorisation变量为,它不再起作用None。有人遇到过类似的事情吗?客户端将标头传递为Authorization; 再次,这在本地主机上工作正常,但在远程服务器上却没有。
编辑:我发现了这个,似乎应该可以,但是没有。实际上,我什至没有一个.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}]
Run Code Online (Sandbox Code Playgroud)
关键是,我什至不确定Apache是否正在使用它。
这似乎有针对此问题的票在这里。只需将以下内容添加到apache2.conf中:
WSGIPassAuthorization on
Run Code Online (Sandbox Code Playgroud)