python - 可以在 Python Eve 中的数据库事件 Hook 中访问 request.authorization.username (BasicAuth)

标签 python flask eve

我正在尝试访问Database Event Hook内的request.authorization.username 'on_insert',但这似乎并不简单,因为无法访问请求对象。

目标是获取给定用户名的租户标识符,并在每次将新文档插入集合时自动添加它。

我正在考虑以下选项:

  1. 深入研究 Flask 并尝试找到从哪里可以获得此信息。我试过this但没有任何成功。
  2. 将其作为请求事件 Hook (on_pre_POST) 进行处理。我应该检查一下如何访问有效负载。
  3. 使用一种请求上下文,在插入时对用户进行身份验证并检索后,将添加租户标识符。

大家觉得怎么样?谢谢!

最佳答案

Eve 的 BasicAuth ( source ) 类将用户名存储在 flask.g 对象 ( docs ) 中,因此您所要做的就是:

from flask import g


def my_event_hook(..)
    username = g.get('user')
    ...

关于python - 可以在 Python Eve 中的数据库事件 Hook 中访问 request.authorization.username (BasicAuth),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38871707/

相关文章:

python - 机器学习 : normalize target var based on the impact of independent var

python - 如何检查 ManyToManyField 表以更新 m2m 取决于父字段 django

javascript - 本地 Flask - HTML 元素链接到 CSS 和 JS 运行时未链接

python - gunicorn 无法启动 python-eve

python - 计算 T(n)?算法效率(Python)

python - 使用 pygtk 和 glade 将 pixbuf 绘制到绘图区域

python - 使用 HTML 模板在 python 中发送电子邮件

python - 我如何在模板中使用 Flask 的 url_for?

Python eve - 用户限制资源访问功能,项目的 ID_FIELD 为 AUTH_FIELD

python - 在一个应用程序中使用 Eve 和 Flask