问题标签 [feathers-hook]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
feathersjs - Feathersjs:一旦我在之前的函数中将它与另一个链接起来,我的钩子就会失败(失去上下文)
我在前钩子(get)中有2个函数(authenticate,restrictAccess),我想将它们链接在一起。但是restrictAccess被执行了两次(到第二轮它已经丢失了上下文)当我删除authenticate时,restrictAccess按预期工作。
这是我的钩子
但是当我删除身份验证时
限制访问按预期工作
javascript - FeathersJs: context.params.user 在钩子前返回 undefined
当我尝试user._id
在前钩子中分配给实体时,我变得不确定。
钩子
这是我的钩子寄存器
node.js - 为什么在所有更新服务方法中都调用 Hook
我正在使用以下信息创建一个挂钩文件,即 Hooks.js Hooks.js 正在努力在需要时使用 JWT 对操作进行身份验证,我在所有服务调用中都不需要它。
据我了解,调用钩子的语法是应用程序/使用路由/钩子,这些钩子仅适用于特定路由,而不是全局。
然后我为服务和路由创建一个文件,如下所示:
为什么 Hooks.isValidToken 适用于我的所有更新方法?即使我不打电话?
请帮忙。
feathersjs - FeathersJs - 清理用户服务中 Find 方法的响应破坏了身份验证服务
我在用户服务中创建了一个后挂钩,它应该清理“查找”方法的响应,它破坏了身份验证服务。
after hook sanitizeResponse应该验证查询是否与电子邮件或 cpf 有关,如果是,则应删除一些字段并添加一些新字段。
这是users.hooks.js
在编写这个钩子之前,身份验证过去工作得很好,但之后它开始向我发送“未通过身份验证”的响应。
我没有更改由 feathersjs-cli 生成的 user.class.js 和 authentication.js 文件中的任何内容。
我想知道我做错了什么?有没有更好的方法来清理响应?
感谢你们对我的帮助!
feathersjs - 向mongo插入大量数据时内存增长到OOM
我正在使用@feathers/mongodb 将 500k 条目从 csv 文件加载到 mongo。
在一个钩子中,我正在收集所有行,稍微操作它们并插入整个数组
让 data_to_insert = [];
到蒙戈。它运行良好,数据在大约 10 秒内写入数据库。
但是,我注意到 pm2 堆增长到 8GB,然后进程运行到内存不足。我想知道为什么之后会发生这种情况。这可能与触发的 500k 创建事件有关吗?
尤其是弦乐很大。如果我检查它们,我可以看到一些占用大部分内存的“事件字符串”:
如果我再次尝试调用钩子,它就会卡住。我(或 PM2)必须重新启动该过程才能使其重新启动并运行:
如果这与事件有关,如何为这种插入停用它?如果没有,应该在这段代码中优化什么来避免堆中的这种膨胀?
谢谢你的帮助。
feathersjs - 如何使用 Featherjs & Postman 正确测试权限?
首先,我想提一下,我对编码还很陌生,所以请原谅我可能很愚蠢的问题。
所以我正在使用 FeatherJS 开发一个应用程序,在我的应用程序中我想使用权限来确保某些用户在他们可以执行的操作中受到限制,即只允许管理员创建或更新用户。
为此,我使用 NPM 安装了 feathers-permission 并且我已经阅读了文档,但是在尝试测试该功能是否真的有效时我被卡住了。这是我的设置:
所以现在当我尝试通过向我的应用程序的用户端点(http://localhost:3030/users)发送 POST 请求来创建用户时。您可以在下面找到我发出的 POST 请求的正文
我总是收到以下消息:
在我发送 POST 请求之前,我对自己进行身份验证并检索一个承载令牌,我将其包含在我的 POST 消息中以识别我自己。当然,我还确保我拥有创建用户所需的访问权限。
你们中的任何人都可以帮我解决这个问题吗?我在后端的配置中做错了什么,即我忘记在用户服务中添加一些代码吗?或者我应该在我的 POST 请求中传递一些额外的参数?
任何帮助将不胜感激!
feathersjs - 使用 Feathersjs 设计注册程序
我有一个关于在我的应用程序后端使用 FeatherJS 设计注册程序的问题。
我面临的问题如下:
我希望用户能够使用他/她的电子邮件和密码注册他的组织/公司。该用户可以被视为组织的管理员。
创建该管理员用户后,我希望该用户能够创建链接到他/她的组织的其他用户。为了确保只有管理员用户可以创建其他用户,我设置了羽毛权限以检查“用户”服务的“之前”挂钩中的“管理员”权限
我现在遇到的问题是我无法注册初始用户,因为 before 挂钩正在请求一个经过身份验证的用户,该用户具有我没有的管理员权限,因为该用户尚未创建。
我可以删除身份验证和权限检查,但随后我的用户服务“不受保护”,任何人都可以使用对服务器的正确 POST 调用来创建用户。
我的问题是:我应该如何设置我的服务和/或挂钩,以便我可以在我的应用程序中注册一个新用户,并且只有经过身份验证的管理员用户才能在应用程序中创建新用户?
提前谢谢了!
typescript - Feathers.js 认证服务在构建 JWT 时使用全局实体和服务变量,而不是本地实体
我正在使用feathers.js
我的应用程序。在我的应用程序中,我使用不同的策略。对于所有这些策略,实体是user
。但我也想local
对内部运营商使用策略。全局实体设置为,user
但对于local
我以我的名称注册的策略,我operator
将实体设置为operator
(我的 Postgres 数据库中有user
表operator
)。这是我的config/default.js
:
这是我的authentication.ts
文件(我省略了一些 brewety 的代码):
我有operator
这个服务的调用和钩子。
所以你可以在上面看到我authenticate("operator")
之前打电话find()
,然后我打算打电话isAuthorized
做一些检查。但是,context.params.user
返回undefined
.
看起来由于某种原因,身份验证服务在构建 JWT 时使用了全局实体和服务变量。
我的配置中是否缺少使身份验证服务使用operator
实体的内容?或者换句话说,有没有办法将operator
service 用于local
策略而不是 global user
?