如何解决授权凭证已剥离-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 举报,一经查实,本站将立刻删除。