flask框架-认证:使用请求中间件实现全局认证,部分路由不用,实现指定视图函数需要管理员权限,在request中存 用户信息
from flask import Flask, request
app = Flask(__name__)
# 自定义一个简单的认证函数
def simple_auth(username, password):
return username == 'user' and password == 'pass'
# 请求中间件,用于认证
def authentication_middleware(view_function):
def middleware(*args, **kwargs):
auth = request.authorization
if not auth or not simple_auth(auth.username, auth.password):
return '认证失败', 401
return view_function(*args, **kwargs)
return middleware
# 使用中间件装饰指定视图函数
@app.route('/protected')
@authentication_middleware
def protected_view():
return '这是受保护的视图'
if __name__ == '__main__':
app.run(debug=True)
这段代码定义了一个简单的认证函数simple_auth
和一个请求中间件authentication_middleware
。authentication_middleware
会在视图函数执行前检查认证信息,如果认证失败则返回401错误。这个中间件可以被用来装饰特定的视图函数来实现全局的认证机制。
评论已关闭