将动态输入传递给flask-user @roles_required 装饰器

问题描述

上下文:

我想只允许用户访问用户页面。因为我不知道用户的名字,所以我不能在 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),我不能硬编码所需的角色,因为它取决于页面地址

我愿意接受其他路线的建议。最后我只想要最干净的解决方

解决方法

我只是在视图中执行此操作:

npm info it worked if it ends with ok
npm WARN npm npm does not support Node.js v14.15.3
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4,6,7,8,9.
npm WARN npm You can find the latest version at https://nodejs.org/
npm verb cli [
npm verb cli   '/usr/bin/node',npm verb cli   '/usr/local/bin/npm',npm verb cli   'upgrade',npm verb cli   '-g',npm verb cli   'npm',npm verb cli   '--verbose'
npm verb cli ]
npm info using npm@5.6.0
npm info using node@v14.15.3
npm verb npm-session 78951400057ee470
npm verb update computing outdated modules to update
npm verb stack TypeError: cb.apply is not a function
npm verb stack     at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
npm verb stack     at FSReqCallback.oncomplete (fs.js:184:5)
npm verb cwd /home/tom
npm verb Linux 5.4.0-58-generic
npm verb argv "/usr/bin/node" "/usr/local/bin/npm" "upgrade" "-g" "npm" "--verbose"
npm verb node v14.15.3
npm verb npm  v5.6.0
npm ERR! cb.apply is not a function
npm verb exit [ 1,true ]