【问题标题】:loopback x3 get accesstoken in a remote modelloopback x3 在远程模型中获取访问令牌
【发布时间】:2017-10-25 13:10:01
【问题描述】:

我需要在loopback 3的模型中获取token,如何在远程模型或其他模型中获取access token和user-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}
    }
  );
};

【问题讨论】:

    标签: loopbackjs loopback


    【解决方案1】:

    当前,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 包来使用旧方法,但风险自负。

    【讨论】:

    • 感谢您的回答,但我真正想要的是每次点击我都会获得用户 ID,因此我在手动创建的权限表上验证用户。
    • 我不确定你的意思。您可以从远程方法中的 options 对象获取访问令牌和用户 ID。有没有其他的地方/时刻,你想截取它?
    猜你喜欢
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 2019-12-16
    • 1970-01-01
    • 2014-07-09
    相关资源
    最近更新 更多