有权访问Python中的数据库事件挂钩中的request.authorization.username(BasicAuth)Eve

问题描述:

我试图在Database Event Hook'on_insert'中访问request.authorization.username,但似乎没有由于没有对请求对象的访问可用,所以很简单。有权访问Python中的数据库事件挂钩中的request.authorization.username(BasicAuth)Eve

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

我想以下选项:

  1. 挖成瓶,并试图找到在那里我能得到这个信息。我试过this没有任何成功,但。
  2. 将其作为Request事件挂接(on_pre_POST)处理。我应该检查如何访问有效负载。
  3. 使用请求上下文的类型,其中在插入时验证和检索用户之后添加租户标识符。

你们认为什么?谢谢!

+0

您使用哪种类型的验证?如果您使用的是TokenAuth或BasicAuth,则可以尝试在current_app配置中设置用户名,并在事件挂接中稍后访问它。 – gcw

+0

感谢您的快速响应gcw,我使用的是BasicAuth ...这是我现在想要实现的目标,但我希望有一个更清晰的解决方案。当我完成我目前的分析时,我会回到这个问题:) – RAmPE

夏娃的BasicAuthsource)类存储的用户名在flask.g对象(docs),因此,所有你需要做的就是:

from flask import g 


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