我正在构建一个烧瓶应用程序,其中有一个名为createUser的端点。现在,我只希望管理员(用户类型= admin)创建其他用户,而不是普通用户。使用@login必需的装饰器不会阻止普通用户调用此端点。
可以限制的一种简单方法是在createUser函数中检查用户的类型,并且仅在用户为admin时才允许。
但是总的来说,最好的方法是保护烧瓶的端点并仅使很少的用户访问端点?
一般来说,人们通常会设置一个装饰器来获取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
Run Code Online (Sandbox Code Playgroud)
然后在您看来,您可以执行以下操作:
@app.route('/protected')
@role_required('admin')
def admin_view():
" this view is for admins only "
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用烧瓶摇床
| 归档时间: |
|
| 查看次数: |
2413 次 |
| 最近记录: |