在Python Eve中访问Database事件挂钩中的request.authorization.username(BasicAuth)

时间:2016-08-10 11:06:50

标签: python flask eve

我试图访问Database Event Hook' on_insert'中的 request.authorization.username ,但它似乎没有因为无法访问请求对象,所以非常简单。

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

我正在考虑以下选项:

  1. 深入Flask并尝试找到我可以获取此信息的位置。我虽然尝试了this但没有取得任何成功。
  2. 将其作为Request事件挂钩(on_pre_POST)处理。我应该查看如何访问有效载荷。
  3. 使用请求上下文的类型,在插入时对用户进行身份验证和检索后,将添加租户标识符。
  4. 你们觉得怎么样? THX!

1 个答案:

答案 0 :(得分:1)

Eve的BasicAuthsource)类将用户名存储在flask.g对象(docs)中,所以您只需要:

from flask import g


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