gpt4 book ai didi

Python Eve Auth 无法返回 401 异常

转载 作者:行者123 更新时间:2023-12-01 01:05:38 25 4
gpt4 key购买 nike

我正在运行 demo code我在使用 Python Eve 时遇到了 Auth 部分的问题。我运行的代码与存储库相同,除了 settings.py 中的 MongoDB URI。

# We want to seamlessy run our API both locally and on Heroku. If running on
# Heroku, sensible DB connection settings are stored in environment variables.
MONGO_URI = 'mongodb://****:****@localhost:27017/admin'
MONGO_DBNAME = 'apitest'

如果我在基本身份验证中输入正确的凭据(即 user=admin passwd=secret),则一切正常,但如果我不输入授权 header 或正确的凭据正如我所期望的那样,我没有得到 401,但应用程序崩溃并返回 500。这是回溯。

[2019-03-28 12:55:32,082] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
File "/home/biscas/code/Tools/eve-demo/venv/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/home/biscas/code/Tools/eve-demo/venv/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/biscas/code/Tools/eve-demo/venv/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/biscas/code/Tools/eve-demo/venv/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/home/biscas/code/Tools/eve-demo/venv/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/home/biscas/code/Tools/eve-demo/venv/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/biscas/code/Tools/eve-demo/venv/lib/python3.6/site-packages/eve/methods/common.py", line 317, in rate_limited
return f(*args, **kwargs)
File "/home/biscas/code/Tools/eve-demo/venv/lib/python3.6/site-packages/eve/auth.py", line 79, in decorated
return auth.authenticate()
File "/home/biscas/code/Tools/eve-demo/venv/lib/python3.6/site-packages/eve/auth.py", line 152, in authenticate
abort(401, description="Please provide proper credentials", response=resp)
File "/home/biscas/code/Tools/eve-demo/venv/lib/python3.6/site-packages/werkzeug/exceptions.py", line 752, in abort
return _aborter(status, *args, **kwargs)
File "/home/biscas/code/Tools/eve-demo/venv/lib/python3.6/site-packages/werkzeug/exceptions.py", line 733, in __call__
raise self.mapping[code](*args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'response'

最佳答案

我只用 flask 就能重现这个问题。看起来它与最新的 werkzeug 版本有关。 Flask 没有指定要使用哪个 werkzeug,只是说 0.14 以上的任何内容,因此您会自动获取最新版本(截至今天为 0.15.1)等等。版本 0.15.0 稍微改变了 http 异常的实现,特别是 this bit right here引入了 Unauthorized http 异常构造函数,因此它现在不接受该 response 参数。在它简单地扩展了 HTTPException 之前。

所以我建议在您的项目需求中简单地固定一个特定版本的 werkzeug 。任何低于 0.15 版本的版本(例如 0.14.1)都适合您。

你还能做什么:

  • 向开发者报告问题
  • 也许向 werkzeug 团队提出也会有帮助

关于Python Eve Auth 无法返回 401 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55397171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com