Feathers:自定义身份验证,服务与连接级别

时间:2018-02-13 10:34:37

标签: node.js feathersjs feathers-authentication feathers-hook

我想使用带有羽毛的简单但自定义的身份验证例程,但却无法理解如何实现它。

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

我是否认为无法实施feathers-authenticate?官方认证文档以JWT为中心,并未提及任何不依赖护照的方法。

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

我可以用羽毛做这件事吗?

1 个答案:

答案 0 :(得分:0)

我通过向primus连接添加身份验证来解决这个问题:

  feathersApp.configure(
    primus(
      {
        transformer: "websockets"
      },
      function(primus) {
        primus.use("cookies", cookieParser, 1);
        primus.authorize(async (req, done) => {
          try {
            done(await authenticateRequest(req));
          } catch (err) {
            done(err);
          }
        });
      }
    )
  );