loopback x3在远程模型中获取accessstoken

时间:2017-10-25 13:10:01

标签: loopbackjs loopback

我需要在环回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}
    }
  );
};

1 个答案:

答案 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包来使用旧方法,但这会自行承担风险。