首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Loopback3 -通过访问令牌查找当前用户

Loopback3 -通过访问令牌查找当前用户
EN

Stack Overflow用户
提问于 2017-01-13 16:57:52
回答 1查看 2.5K关注 0票数 1

我在Loopback3文档中看到,getCurrentContext()已被废弃。我想要做的是获取访问令牌,并使用它在db中找到关联的用户,这样我就可以获得用户所属的company_id,并将查询更改为包含在where子句中。我使用的是MySQL和一个自定义的UserAccount模型,它是从用户扩展而来的。

我对Loopback很陌生,所以很难弄清楚这一点,尤其是大多数在线帮助似乎指向getCurrentContext();

我已经设置了一些中间件来运行在解析阶段:

middleware.json

代码语言:javascript
复制
"parse": {
    "./modifyrequest": {
      "enabled": true   
    }
  }

modifyrequest.js

代码语言:javascript
复制
var loopback = require('loopback');

module.exports = function(app) {
  return function tracker(req, res, next) {
    console.log('Middleware triggered on %s', req.url);
      console.log('-------------------------------------------------------------------');
    console.log(req.accessToken);
}
};

然而,req.accessToken总是未定义的。我在server.js中添加了以下内容:

代码语言:javascript
复制
app.use(loopback.token());

有什么想法吗?这样做不对吗?

溶液

根据Kamal的评论..。

尝试将"loopback#token":{}在middleware.json中设置为“初始:之前”

这将填充req.accessToken

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-19 15:14:06

首先,尝试在"loopback#token": {}下设置middleware.json中的"initial:before"

然后,如果从请求对象访问accessToken,则可以在该accessToken对象中找到userId。尝试记录req.accessToken,您将在其中找到userId。

您可以使用该用户id在数据库中搜索相应的用户。

代码语言:javascript
复制
User.findById(req.accessToken.userId, function(err, user){
  if(err) {
    //handle error
  }
  else {
    //access user object here
  }
});
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41639736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档