微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

授权凭证已剥离-django,弹性beantalk,oauth

如何解决授权凭证已剥离-django,弹性beantalk,oauth

我现在使用略有不同的方法。只要汤姆·迪金(Tom dickin)指出不改变环境变量,sahutchi的解决方案就可以工作。我在EB内部进行了更深入的挖掘,发现了wsgi.conf模板的位置,并在其中添加了“ WsgiPassAuthorization On”选项。

commands:
  WsgiPassAuthorization:
    command: sed -i.bak '/WsgiScriptAlias/ a WsgiPassAuthorization On' config.py
    cwd: /opt/elasticbeanstalk/hooks

即使更改环境变量,这也将始终有效。希望对你有帮助。

编辑:似乎仍有很多人在回应这个问题。我已经有一段时间没有使用ElasticBeanstalk了,但是我会在下面考虑使用Manel Clos的解决方案。我还没有亲自尝试过,但是似乎是一个更干净的解决方案。从字面上看,这是对EB脚本的黑客攻击,并且如果EB更新它们,特别是在将它们移动到其他位置的情况下,将来可能会中断。

我喜欢在标准位置进行一些额外配置的想法。在你的.ebextensions目录中,创建具有以下内容的wsgi_custom.config文件

files:
  "/etc/httpd/conf.d/wsgihacks.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
      WsgiPassAuthorization On

解决方法

我在django中使用django-rest-framework实现了REST api,并使用oauth2进行身份验证。

我测试了:

curl -X POST -d "client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=password&username=YOUR_USERNAME&password=YOUR_PASSWORD" http://localhost:8000/oauth2/access_token/

curl -H "Authorization: Bearer <your-access-token>" http://localhost:8000/api/

在本地主机上,成功结果与文档一致。

将其推送到现有的AWS Elastic beantalk实例时,我收到了:

{ "detail" : "Authentication credentials were not provided." }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。