我是Hapi.js的新手,正在使用“ hapi-auth-jwt2”模块进行身份验证令牌和角色验证。我设置了范围,并从validateFunc的回调中发送了该范围。它对于检查基于角色的身份验证非常有效。但是我想要我从validateFunc返回的结果,但是不知道我在哪里可以得到。

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的预钩中获取该数据。任何帮助深表感谢。

谢谢

最佳答案

这实际上是一项正在开发的功能,希望很快会完成。

现在,您可以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': {}
        }
      }
    });
};

关于node.js - 如何在自动创建的API Rest Hapi之前获取validateFunc的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44546596/

10-11 14:03