Python 如何检查用户是否具有特定的属性值
我目前正在使用flask登录来验证我的网站。 我的模型是一个简单的用户(具有id、mail等),它具有admin(布尔)属性。 我不需要超过2个角色 在调用路由后,如果当前用户的admin属性值为“True”,是否有任何方法可以检查Python 如何检查用户是否具有特定的属性值,python,authentication,flask,web,flask-login,Python,Authentication,Flask,Web,Flask Login,我目前正在使用flask登录来验证我的网站。 我的模型是一个简单的用户(具有id、mail等),它具有admin(布尔)属性。 我不需要超过2个角色 在调用路由后,如果当前用户的admin属性值为“True”,是否有任何方法可以检查 我尝试通过试用自定义装饰器以及访问会话['admin']来解决此问题,但没有成功。因为@Agung Wiyono.Login提供了一个当前用户变量,请参阅 在您的路线中,您可以执行以下操作: from flask_login import current_user
我尝试通过试用自定义装饰器以及访问会话['admin']来解决此问题,但没有成功。因为@Agung Wiyono.Login提供了一个
当前用户
变量,请参阅
在您的路线中,您可以执行以下操作:
from flask_login import current_user
@app.route("/test")
@login_required
def test():
if current_user.admin:
print('user is admin')
# blah blah
如果您不想使用所需的login\u
decorator:
@app.route("/test")
def test():
if current_user.is_authenticated and current_user.admin:
print('user is authenticated and is an admin')
# blah blah
如果要使用装饰器检查当前用户
管理值是否为真
:
def admin_role_required(func):
@wraps(func)
def decorated_view(*args, **kwargs):
if request.method in EXEMPT_METHODS:
return func(*args, **kwargs)
elif not current_user.admin:
abort(403)
return func(*args, **kwargs)
return decorated_view
此代码或多或少是@login\u required
的代码,只是它检查admin
属性的状态-请参阅
并使用如下。请注意,这一点很重要<首先调用code>@login\u required,然后调用@admin\u role\u required
。Decoratoradmin\u role\u required
假定当前用户已通过身份验证。如果首先调用了admin\u role\u required
,则当前用户
代理将不具有属性admin
,并且您将有一个错误
@app.route("/test")
@admin_role_required
@login_required
def test():
# need to be logged in and admin be True to get here
# blah blah
您是否尝试过使用flask login提供的
当前用户
?