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

如何解决将动态输入传递给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 ]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?