2017-06-14 43 views
1

我是Hapi.js.的新手,我正在使用“hapi-auth-jwt2”模块进行身份验证令牌和角色验证。我设置了范围并从validateFunc的回调中发送了该范围。它会很好地检查基于角色的身份验证。但我想要我从validateFunc返回的结果,但不知道我在哪里可以得到。如何在自动创建的API中获取validateFunc的结果Rest Hapi

validateFunc: function (token, request, callback) { 
      Async.auto({ 
       session: function (done) { 
        Session.findByCredentials(token.sessionId, token.sessionKey, done); 
       }, 
       user: ['session', function (results, done) { 

        if (!results.session) { 
         return done(); 
        } 

        User.findById(results.session.user, done); 
       }], 
      }, (err, results) => { 
       if (err) { 
        return callback(err); 
       } 

       if (!results.session) { 
        return callback(null, false); 
       } 
       results.scope = token.scope; 
       callback(null, Boolean(results.user), results); 
      }); 
     } 
    }); 


}; 
` 

它验证域即范围或作用: -

routeOptions: { 
       scope:{ 
        createScope:"admin" 
       }, 
    create: { 
     pre : function(payload, Log){ 
      console.log("preee runnnig........"); 
      console.log(payload); 
     } 
     } 

我得到了有效载荷的Json什么,我从客户端发送,但我想要的结果我从发送回调validateFunc,因为我想在发送请求之前在这里使用这些数据。 我正在通过Rest Hapi模块隐式创建API。

那么我怎么能从validateFunc得到那个datain pre hooks。任何帮助深表感谢。

感谢

回答

0

这实际上是正在研发中,希望能早日实现一个功能。

现在,您可以通过omit the generated create endpointreplace it with your own访问请求对象。

生成的代码看起来是这样的:

'use strict'; 

const RestHapi = require('rest-hapi'); 

module.exports = function (server, mongoose, logger) { 
    server.route({ 
     method: 'POST', 
     path: '/pathName', 
     config: { 
     handler: function(request, reply) { 
      /* modify request.payload here and access auth info through request.auth.credentials */ 

      const Model = mongoose.model('modelName'); 
      return RestHapi.create(Model, request.payload, logger) 
      .then(function (result) { 
       return reply(result); 
      }) 
      .catch(function (error) { 
       return reply(error); 
      }); 
     }, 
     tags: ['api'], 
     plugins: { 
      'hapi-swagger': {} 
     } 
     } 
    }); 
}; 
相关问题