将动态输入传递给 flask-user @roles_required 装饰器
passing dynamic input to flask-user @roles_required decorator
上下文:
我想将对用户页面的访问限制为仅限该用户。因为我不知道用户的名字,所以我不能在 roles_required 装饰器中指定他们的名字。
所以我现在正在做的是使用 flask-user 为用户分配一个角色,并使用 @roles_required 装饰器来限制这个用户的访问权限。仅供参考,我将角色名称设置为 users_id(uuid)
问题:
我无法在 roles_required() 装饰器中对用户角色 ID 进行硬编码。我怎么可能将其设置为变量?这样我就可以对我的数据库进行查询以检查该用户是否应该能够访问
@route('/api/<userid>')
@roles_required('<userid>') #38096c6c-fd3d-44fc-8918-b2632b41540e
def my_homepage():
return "hello world"
问题是因为我正在动态创建路由,因为每个用户都有自己的页面(这是他们的 uuid),我无法硬编码所需的角色,因为它取决于页面地址
我愿意接受走另一条路的建议。最后我只想要最干净的解决方案
我只是在视图中这样做:
@route('/api/<userid>')
def my_homepage(userid):
if current_user.id != userid:
abort(403, "You can't access that")
上下文:
我想将对用户页面的访问限制为仅限该用户。因为我不知道用户的名字,所以我不能在 roles_required 装饰器中指定他们的名字。
所以我现在正在做的是使用 flask-user 为用户分配一个角色,并使用 @roles_required 装饰器来限制这个用户的访问权限。仅供参考,我将角色名称设置为 users_id(uuid)
问题:
我无法在 roles_required() 装饰器中对用户角色 ID 进行硬编码。我怎么可能将其设置为变量?这样我就可以对我的数据库进行查询以检查该用户是否应该能够访问
@route('/api/<userid>')
@roles_required('<userid>') #38096c6c-fd3d-44fc-8918-b2632b41540e
def my_homepage():
return "hello world"
问题是因为我正在动态创建路由,因为每个用户都有自己的页面(这是他们的 uuid),我无法硬编码所需的角色,因为它取决于页面地址
我愿意接受走另一条路的建议。最后我只想要最干净的解决方案
我只是在视图中这样做:
@route('/api/<userid>')
def my_homepage(userid):
if current_user.id != userid:
abort(403, "You can't access that")