首页 > 解决方案 > FeatherJS - 用钩子获取用户信息?

问题描述

所以我尝试了 FeatherJS,我能够注册一个新用户,请求一个令牌,还请求受保护的数据(在标题中使用授权)。

非常重要:我只使用 HTTP Rest API。文档似乎经常指向我不使用的客户端羽毛模块。

所以目前我有一个超级简单的设置,我有一个带有文本的消息服务。一个前钩子来处理消息。在这里我想取回用户信息:

module.exports = function (options = {}) {
  return async context => {

    const text = context.data.text
    const user = context.params.user;

    context.data = {

      text,
      userId: user._id

    }
    return context;
  };
};

这不起作用。在我的 mdb 中,我只返回:

{
    "_id": "5c35ce18523501803f6a8d8d",
    "text": "123",
    "createdAt": "2019-01-09T10:34:00.774Z",
    "updatedAt": "2019-01-09T10:34:00.774Z",
    "__v": 0
}

我尝试添加令牌,当我通过授权发布消息时我总是提交,如下所示:

module.exports = function (options = {}) { return async context => {

    const text = context.data.text
    const user = context.params.user;
    const token = context.params.accessToken


    context.data = {

      text,
      userId: user._id,
      tokId: token

    }
    return context;
  };
};

但似乎我总是得到相同的结果,如上所示。

有什么想法可以通过使用 accessToken 来获取当前用户的用户信息吗?

以前从未使用过 FeathersJS,所以只是试图了解生态系统以及如何在 FeathersJS 中解决这个问题。

任何建议表示赞赏!提前谢谢大家!

标签: expressfeathersjs

解决方案


所以,如果我理解正确,你想从钩子中获取用户对象吗?

您可以使用const user = context.user;来完成此操作。


推荐阅读