如何从其他蓝图访问Flask身份验证令牌

Sha*_*mir 5 python jwt flask-login flask-restful

我有一个带有2个蓝图的烧瓶应用程序。认证蓝图和事件蓝图。这就是他们的结构

`app/
    auth_blueprint/
            init.py
            views.py
            model.py
    events_blueprint/
            init.py
            model.py
            views.py 
`
Run Code Online (Sandbox Code Playgroud)

auth_blueprint处理用户事件。登录,注册等。我的问题是,登录后如何访问从auth_blueprint生成的令牌,并在events_blueprint中使用它来保护其他端点?

在auth_blueprint下的视图中,身份验证代码为

@authenticate.verify_password
def verify_password(username_or_token, password):
    # first try to authenticate by token
    user = models.User.verify_auth_token(username_or_token)
    if not user:
        # try to authenticate with username/password
        user = models.User.query.filter_by(username = username_or_token).first()
        if not user or not user.verify_password(password):
            return False
    g.user = user

    import pdb; pdb.set_trace() #debugger
    return True

#login user
@auth.route('/api/v1/auth/login')
@authenticate.login_required
def login():    
    token = g.user.generate_auth_token()
    return jsonify({ 'token': token.decode('ascii') })
    #return jsonify({'Welcome':'Login Okay'}),200 
Run Code Online (Sandbox Code Playgroud)

当我尝试在events_blueprint下的视图中访问g时出现错误g没有属性用户

@events.route('/api/v1/user')
def getloggeduser():
    print(g)
    import pdb; pdb.set_trace()
    return g
Run Code Online (Sandbox Code Playgroud)

PS:那是出于测试目的。我只对获取存储在g中的用户对象感兴趣,后来又从那里检索到一个userid。

我正在使用jwt进行基于令牌的身份验证。让我知道是否需要澄清。谢谢