2017-06-14 53 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': {} 
     } 
     } 
    }); 
}; 
相關問題