5

hapi とその auth-cookie プラグインの例はあまりありませんが、ルートを保護するためにこれまでに得たものを次に示します。私が見た例のほとんどは、この状況にはまったく当てはまらない古いバージョンのhapiを使用していることに注意してください。単純なものが欠けていることを願っています:

var Hapi = require('hapi');
var Mongoose = require('mongoose');

Mongoose.connect('mongodb://localhost/rfmproducetogo');

var server = new Hapi.Server(8080, "localhost");

server.pack.register([{
    plugin: require("lout")
}, {
    plugin: require('hapi-auth-cookie')
}, {
    plugin: require("./plugins/togo")
}, {
    plugin: require("./plugins/auth")
}], function(err) {
    if (err) throw err;
    server.auth.strategy('session', 'cookie', {
        password: 'shhasecret',
        cookie: 'wtfisthisfor',
        isSecure: false,
        redirectTo: false
    });
    server.start(function() {
        console.log("hapi server started @ " + server.info.uri);
    });
});

そして、私のtogoプラグインでは、セッションを使用するためにこのルートを設定しています

exports.create = function(plugin) {
    plugin.route({
        method: 'POST',
        path: '/togo/add',
        handler: function(request, reply) {
            produce = new Produce();
            produce.label = request.payload.label;
            produce.price = request.payload.price;
            produce.uom = request.payload.uom;
            produce.category = request.payload.category;

            produce.save(function(err) {
                if (!err) {
                    reply(produce).created('/togo/' + produce._id);
                } else {
                    reply(err);
                }

            });
        },
        config: {
            auth: 'session'
        }
    });
};

私が見ているエラーはこれです:

/home/adam/Projects/bushhog/node_modules/hapi/node_modules/hoek/lib/index.js:421
    throw new Error(msgs.join(' ') || 'Unknown error');
          ^
Error: Unknown authentication strategy: session in path: /togo/add
    at Object.exports.assert (/home/adam/Projects/bushhog/node_modules/hapi/node_modules/hoek/lib/index.js:421:11)
    at /home/adam/Projects/bushhog/node_modules/hapi/lib/auth.js:123:14
    at Array.forEach (native)
    at internals.Auth._setupRoute (/home/adam/Projects/bushhog/node_modules/hapi/lib/auth.js:121:24)
    at new module.exports.internals.Route (/home/adam/Projects/bushhog/node_modules/hapi/lib/route.js:118:43)
    at /home/adam/Projects/bushhog/node_modules/hapi/lib/router.js:110:25
    at Array.forEach (native)
    at /home/adam/Projects/bushhog/node_modules/hapi/lib/router.js:107:17
    at Array.forEach (native)
    at internals.Router.add (/home/adam/Projects/bushhog/node_modules/hapi/lib/router.js:104:13)

ノード 0.10.28、hapijs 6.x、hapi-auth-cookie 1.02 を実行中

4

2 に答える 2