我在Loopback3文档中看到,getCurrentContext()已被废弃。我想要做的是获取访问令牌,并使用它在db中找到关联的用户,这样我就可以获得用户所属的company_id,并将查询更改为包含在where子句中。我使用的是MySQL和一个自定义的UserAccount模型,它是从用户扩展而来的。
我对Loopback很陌生,所以很难弄清楚这一点,尤其是大多数在线帮助似乎指向getCurrentContext();
我已经设置了一些中间件来运行在解析阶段:
middleware.json
"parse": {
"./modifyrequest": {
"enabled": true
}
}modifyrequest.js
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中添加了以下内容:
app.use(loopback.token());有什么想法吗?这样做不对吗?
溶液
根据Kamal的评论..。
尝试将"loopback#token":{}在middleware.json中设置为“初始:之前”
这将填充req.accessToken
发布于 2017-01-19 15:14:06
首先,尝试在"loopback#token": {}下设置middleware.json中的"initial:before"。
然后,如果从请求对象访问accessToken,则可以在该accessToken对象中找到userId。尝试记录req.accessToken,您将在其中找到userId。
您可以使用该用户id在数据库中搜索相应的用户。
User.findById(req.accessToken.userId, function(err, user){
if(err) {
//handle error
}
else {
//access user object here
}
});https://stackoverflow.com/questions/41639736
复制相似问题