如何将@app.before_request中的身份验证功能放入烧瓶中



我想在flask应用程序中创建auth层。我使用的是为jwt-auth扩展的flask jwt,因此我必须为每个受保护的路由提到@jwt_requied decorator。所以我不想对每条受保护的路线都这样做。我想定义一个函数,并使用@app.before_request在每次请求之前执行。我希望在这一层中进行身份验证。


def check_user_token():
if 'x-access-token' in request.headers:
token = request.headers['x-access-token']
if not token:
return jsonify({'message': 'Token is missing'}), 401
try:
data = jwt.decode(token, app.config['SECRET_KEY'])
current_user = UserDetails.query.filter_by(username=data['username']).first()

except:
return jsonify({'message': 'Token is in-valid'}), 401
return current_user

因此,这是我想在每次请求检查auth之前调用的函数。

@app.before_request
def before_calback():
#want to call that check_user_token() from here and 
#also dont want to call that for 'login' route .
#Once i will get some response from check_user_token() 
#based on that want to proceed further
#and  here i dont know to do this.

基本上,我的问题是如何在@app.before_request-def-before_calback((中进行身份验证?

你能访问check_user_token((吗?

就像这个

@app.before_request
def before_calback():
check_user_token()

如果你能发布一些代码,会更容易帮助你。

最新更新