我需要在环回3的模型中获取令牌,如何在远程模型或其他模型中获取访问令牌和用户ID?
我一直在努力。
代码:
module.exports = function(app) {
const User = app.models.User;
User.userDemo= function (cb) {
console.log(here access token);
User.find({
fields:['username','email']
},cb);
};
User.remoteMethod(
'userDemo',
{
http: {path:'/user-demo', verb: 'get'},
returns: { arg: '', type:'array',root:true}
}
);
};
答案 0 :(得分:2)
目前suggested solution是在通过REST调用调用方法时播种options
参数。必须在远程处理元数据中注释options
参数,并在http
属性中设置特定值。
user.userDemo = function (options, cb) {
// options object contains context information (accessToken, currentUser, ...)
console.log(options);
user.find({
fields: ['username', 'email']
}, cb);
};
user.remoteMethod(
'userDemo',
{
http: {path: '/user-demo', verb: 'get'},
accepts: [
{arg: 'options', type: 'object', http: 'optionsFromRequest'}
],
returns: {root: true}
}
);
额外信息:
在LoopBack 2.x中,他们使用模块continuation-local-storage(或更晚的cls-hooked)引入了当前上下文API。它适用于许多人的案例,但它的问题使它成为不可靠的依赖。在Loopback 3.x中,他们远离这些API并提供了options
对象传播形式的替代方案(部分内容就是您在上面的示例代码中看到的内容)。您仍然可以通过添加loopback-context包来使用旧方法,但这会自行承担风险。