gpt4 book ai didi

python - 保护 flask 端点的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 09:01:12 24 4
gpt4 key购买 nike

我正在构建一个 flask 应用程序,其中有一个名为 createUser 的端点。现在我只希望管理员(用户类型 = admin)创建其他用户而不是普通用户。使用@login-required 装饰器不会阻止普通用户调用此端点。

可以限制的一种简单方法是检查 createUser 函数中的用户类型,并且仅当用户是管理员时才允许。

但一般来说,保护 Flask 端点并只给少数用户访问端点的最佳方法是什么?

最佳答案

一般来说,人们通常会设置一个装饰器来获取 current_user 并检查他们的角色。

def role_required(role_name):
def decorator(func):
@wraps(func)
def authorize(*args, **kwargs):
if not current_user.has_role(role_name):
abort(401) # not authorized
return func(*args, **kwargs)
return authorize
return decorator

然后在您的 View 中您基本上可以这样做:

@app.route('/protected')
@role_required('admin')
def admin_view():
" this view is for admins only "

或者,您可以使用 flask-bouncer

关于python - 保护 flask 端点的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25233188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com