Как получить результат validateFunc в предварительно автоматически созданном API Rest Hapi

Я новичок в 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, потому что я хочу использовать эти данные здесь до отправки запроса.Я работаю над неявно созданным API через модуль Rest Hapi.

Так, как я могу получить эти предварительные хуки данных от validateFunc . Буду признателен за любую оказанную помощь.

Спасибо

1 ответ

На самом деле это функция, над которой мы работаем, и, надеюсь, скоро будет реализована.

На данный момент вы можете опустить сгенерированную конечную точку создания и заменить ее собственной, чтобы получить доступ к объекту запроса.

Результирующий код будет выглядеть примерно так:

'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': {}
        }
      }
    });
};
Другие вопросы по тегам