【问题标题】:User-Restricted Resource Access用户受限的资源访问
【发布时间】:2014-05-14 11:05:15
【问题描述】:

我正在尝试使用基本身份验证在我的 eve 应用程序中启用“用户受限资源访问”。 http://python-eve.org/authentication.html#user-restricted-resource-access

问题是,自从我启用它后,API 上的每个 http 请求都会出现“500 错误”

如果我在没有基本身份验证参数的情况下启动 API,我会收到错误的凭据错误,因此基本身份验证工作正常。

这是前夜调试输出:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python2.7/dist-packages/Eve-0.3-py2.7.egg/eve/methods/common.py", line 226, in rate_limited
    return f(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Eve-0.3-py2.7.egg/eve/auth.py", line 43, in decorated
    if not auth.authorized(roles, resource_name, request.method):
  File "/usr/local/lib/python2.7/dist-packages/Eve-0.3-py2.7.egg/eve/auth.py", line 97, in authorized
    allowed_roles, resource, method)
  **File "/home/maanuel/emberv/eve/run.py", line 12, in check_auth
    self.set_request_auth_value(account['_id'])
AttributeError: 'BCryptAuth' object has no attribute 'set_request_auth_value'**

set_request_auth_class 好像不见了

我正在使用通过 easy_install 安装的 eve 0.3

【问题讨论】:

  • bcrypt example in the GitHub repository 看起来简单多了。
  • 我有! eve.auth 类中的 set_request_auth_class() 方法首先在 v 0.4 中可用,而不是在我使用的 v.03 中。在 0.3 中,您必须设置一个名为 request_auth_value 的类属性。 -->查看更新日志python-eve.org/changelog.html#version-0-4
  • 听起来你有一个self-answer 来了!
  • 遗憾的是没有:) 新帐户的 stackoverflow 有 8 小时锁定,禁止自我回答!这就是为什么我只将我的答案放在评论部分但肯定会有下一次机会

标签: python flask eve


【解决方案1】:

您正在阅读有关开发版本的文档(如python-eve.org 的所有页面所述)。v0.4 附带的一项相关更改是设置身份验证令牌的方式。所以基本上,您将 0.4-dev 语法应用于 Eve v0.3。你或许应该关注these instructions

PS:0.4 即将发布,因此您可能希望坚持使用该版本,因此您不必很快再次更新您的代码。

【讨论】:

  • 谢谢,我正在锁定 v0.4 版本,特别是针对 github.com/nicolaiarocci/eve/issues/307 的修复,因此您不必使用 dev HEAD 来获得特定的端点级身份验证
  • 真的很想在下周前往瑞典和意大利的 pycon 之前发布这周,但看起来它需要再等一段时间 - 抱歉。
猜你喜欢
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-28
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 2013-10-22
相关资源
最近更新 更多