【问题标题】:HTTP_AUTHORIZATION header in DjangoDjango 中的 HTTP_AUTHORIZATION 标头
【发布时间】: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 是否正在使用它..

【问题讨论】:

    标签: python django apache


    【解决方案1】:

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

    WSGIPassAuthorization on
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 2013-10-28
      相关资源
      最近更新 更多