我使用django- REST -framework在django中实现了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/
在localhost上,成功的结果与文档一致。
在将其推送到现有的AWS弹性beanstalk实例时,我收到以下消息:
{ "detail" : "Authentication credentials were not provided." }
发布于 2015-03-13 19:58:26
我现在使用一种稍微不同的方法。正如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的解决方案。我没有亲自尝试过,但似乎是一个更干净的解决方案。这实际上是对EBs脚本的黑客攻击,如果EB更新它们,特别是当他们将它们移动到不同的位置时,可能会在未来崩溃。
发布于 2015-12-15 23:01:19
我喜欢在标准位置上有一些额外配置的想法。在.ebextensions目录中,使用以下命令创建一个wsgi_custom.config文件:
files:
"/etc/httpd/conf.d/wsgihacks.conf":
mode: "000644"
owner: root
group: root
content: |
WSGIPassAuthorization On
如下所示:https://forums.aws.amazon.com/message.jspa?messageID=376244
发布于 2014-09-16 15:02:30
我认为问题出在我在django或其他错误类型中的配置,而不是关注localhost和EB之间的差异。该问题与EB的Apache设置有关。
WSGIPassAuthorization本机设置为OFF,因此必须将其打开。这可以通过添加以下命令在.ebextensions文件夹中的*.config文件中完成:
container_commands:
01_wsgipass:
command: 'echo "WSGIPassAuthorization On" >> ../wsgi.conf'
如果我遗漏了什么,或者有没有更好的方法来看待这个问题,请告诉我。我在网上任何地方都找不到任何关于这方面的具体内容,我想这可能会节省一些人几个小时的故障排除时间,然后觉得自己很愚蠢。
https://stackoverflow.com/questions/22279301
复制相似问题