问题标签 [feathers-authentication]

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.

0 投票
1 回答
880 浏览

feathersjs - 按角色登录羽毛-身份验证

我在数据库中有两个用户,他们有相同的电子邮件和密码,但角色不同。它看起来像:

当用户尝试登录时,我发送带有参数的请求

问题是:我如何通过角色识别用户(当我使用参数角色从前端请求发送时:“用户”用户必须通过角色“用户”登录,当角色:“管理员” - 由管理员)

这是我的来自 auth 的钩子

0 投票
1 回答
196 浏览

node.js - Feathers:自定义身份验证、服务与连接级别

我想使用带有羽毛的简单但自定义的身份验证例程,但不明白如何实现它。

要求:每个客户端连接(websocket 或 REST)都必须提供一个会话令牌(我通过其他方式建立并保存为 cookie)。服务器中间件验证此会话令牌(针对服务),如果成功则添加用户对象,否则断开连接。

我是否正确,这是不可能实现的feathers-authenticate?官方认证文档以 JWT 为中心,没有提到任何不依赖护照的方法。

可以使用应用程序钩子,例如应用程序级之前的钩子。但这仍然允许用户建立例如 websocket 连接,因为身份验证仅在服务级别上,对吗?我不认为这是理想的。我希望我的身份验证在建立连接(websocket,或者也用于 REST 的 HTTP)时运行,并在不成功时直接放在那里。

我可以用羽毛做这个吗?

0 投票
1 回答
701 浏览

javascript - 没有电子邮件的羽毛 JS 身份验证

我正在寻找一个身份验证系统,用户提交到一个 enpoint 并在这个端点生成一个 jwt,我不知道如何实现这个,我的客户端应用程序不使用电子邮件地址或存储的信息,它实际上是一个应用程序。我只需要一个端点,如果这些值的处理顺利,它将从提供的种子短语和密码计算一个值(并且它几乎总是会,除非有人向端点发送垃圾邮件)然后会发出一个 jwt.. 到目前为止羽毛 cli 的开箱即用功能意味着我需要使用本地策略并需要一个电子邮件地址,我无法在此找到任何演示......有人有任何指示吗?到目前为止,我的身份验证非常默认

这是我的服务:

我对羽毛相对较新,但对构建身份验证系统(在 PHP 中)不熟悉

0 投票
1 回答
750 浏览

feathersjs - 如何将自己的 Oauth2 Passport 策略添加到 FeathersJS 应用程序?

提前为可能是一个明显的问题/答案道歉,但我一直在搜索文档但找不到它。

我知道 FeathersJS 有 Facebook/Twitter/Github 的插入策略——我在文档中看到了这些策略。而且我知道您可以执行各种自定义授权策略。我要做的就是通过一个还没有预打包策略的 Oauth2 提供程序对用户进行身份验证。我找不到这样做的工作示例。

更令人沮丧的是,当我尝试遵循示例/文档时,我收到来自 feathersjs npm 模块的错误,例如:

有没有人有一个工作的例子?

0 投票
1 回答
281 浏览

promise - FeathersJS:如何使用钩子后面的错误取消身份验证钩子

app.authenticate在客户端使用。
它在服务器上创建钩子之前调用了身份验证钩子。
我从 'feathers-authentication-manage.hook' 导入为verifyHooks.

在创建钩子之前:

按顺序排列的 3 个钩子是:
1. 身份验证
2. 我的钩子
3.isVerified()来自羽毛身份验证管理的电子邮件验证钩子

isVerified()在客户端,即使是在身份验证钩子之后,当钩子激活时,身份验证承诺也会被拒绝。
如果我删除了isVerified()钩子,那么身份验证承诺就会解决。

如何使我的钩子(第二个钩子)表现得像isVerified()拒绝客户端上的身份验证承诺?

0 投票
2 回答
779 浏览

node.js - 400 BadRequest:缺少凭据 feathersjs authentication-local

我正在尝试使用@feathersjs/authentication-local 对用户进行身份验证,虽然我提供了正确的用户名和密码,但我得到了以下响应

user实体的DB 属性是username& password。我的配置如下

我已经添加"strategy": "local"了请求正文。我错过了什么?请帮忙。

0 投票
1 回答
288 浏览

node.js - 使用客户端证书进行 FeathersJS 身份验证

我正在尝试创建自己的身份验证策略,该策略在 FeathersJS 后端读取客户端的 PKI 证书。这是在一个before钩子中处理的,并且基于文档钩子是

挂钩是独立于传输的,这意味着它是否通过 HTTP(S) (REST)、Socket.io、Primus 或 Feathers 将来可能支持的任何其他传输调用都无关紧要。它们也与服务无关,这意味着它们可以与任何服务一起使用,无论它们是否有模型。

这不是一个坏主意,但是我需要挂钩中的 TLS 套接字结构来获取用户的证书。本质上是调用:req.socket.getPeerCertificate(). 我正在使用该passport-client-certificate模块,这是有问题的策略:

基于 FeathersJS 代码,该authenticate函数基本上从hook. 有什么方法可以更早地获取用户的证书并在稍后执行钩子时使其可用?

0 投票
1 回答
1314 浏览

feathersjs - 挂钩以检查用户是否在 Feathers 中进行了身份验证(如果没有,则不发送未经授权的错误,只需检查)

我想为数据库中的文档实现一个简单的“已发布”字段。

例如,如果用户未通过身份验证,我希望始终在查询中插入 { published: true } 以获取所有查找/获取请求,因此它将仅返回已发布的文档(在前端有用)

但是,如果用户已通过身份验证并具有所需的角色,我想返回所有文档,而不仅仅是已发布(在管理员中很有用)。

所以我试图创建一个前钩子:

//assignQuery.hook.js

// service.hooks.js

问题是我必须对用户进行身份验证才能获得他的角色,因此如果用户未通过身份验证,服务将发送未经授权的错误,而不是允许过滤查询的响应。

所以我必须在assignQuery之前调用authenticate。在这种情况下,管理员可以正常工作,但前端未经授权的用户无法检索已发布的文章。

如果我在 assignQuery 之前不进行身份验证,它在前端工作正常,未经授权的用户只能看到已发布的文章,但在管理员中不再工作,管理员也将始终只收到已发布的文章,因为在 assignQuery 挂钩中, context.params.user 未定义(因为我们之前没有进行身份验证......)

所以我需要一种方法来检查用户是否经过身份验证,但如果他未经授权,则不要向他发送未经授权的错误,我只想发送修改后的查询的响应。

我想我需要这样的东西:

但我不知道如何进行“无阻塞”身份验证或 isAuthenticate 钩子。可能吗?

我希望我的解释不会那么混乱,目标只是为我的文档实现一个已发布/草稿(可见/隐藏)(在线/离线)字段。

欢迎任何帮助。太感谢了!

0 投票
2 回答
734 浏览

feathersjs - 如何在feathersJs中的单个api调用中从两个或多个mongo模式中获取数据?

我已经配置了一个基本的父亲设置,其中包含两个服务、用户和消息(使用猫鼬)所有 API 端点都在工作。但是我如何在服务中创建一个额外的端点?

我很困惑如何仅使用默认的羽毛 REST 端点开发一个完整的 web 应用程序。例如,我必须使用一个 api,我需要在单个 api 调用中从两个或多个 mongo 模式获取数据。如果我在羽毛之外处理它并为此使用快速路由,我将如何为这些新创建的快速路线设置羽毛身份验证..请告诉我我的情况的最佳解决方案。

0 投票
1 回答
434 浏览

javascript - 如何使用 FeathersJS 检查服务器中的用户身份验证?

所以目前,我正在使用羽毛客户端身份验证和本地策略来验证我的单页应用程序。

我添加了不同的中间件路由,我想检查用户是否经过身份验证,如果没有,将它们重定向到/.

这是我的路线之一:

里面/src/middleware/index.php

我试过类似的东西

但是我只收到缺少凭据错误,尽管在客户端我已登录并且我可以在 localStorage 中看到令牌。

我在这里错过了什么吗?谢谢你。