hapi的使用方法

配合shark-node-openid,能让hapi的web应用快速继承公司的openid登录功能

'use strict';

const Hapi = require('hapi');
var OpenIDDecoractor = require("shark-node-openid");

const server = new Hapi.Server();
server.connection({ port: 3000 });

server.register({
    register: require('hapi-server-session'),
    options: {
        cookie: {
            isSecure: false
        },
        cache: {
            expiresIn: 30* 60 *1000
        },
        path: '/'
    }
}, function (err) { if (err) { throw err; } });

OpenIDDecoractor.init(server, 'hapi');

server.route({
    method: 'GET',
    path: '/',
    handler: OpenIDDecoractor.needLogin(function (request, reply) {
        reply().redirect("/page1")
    })
});

server.route({
    method: 'GET',
    path: '/page1',
    handler: OpenIDDecoractor.needLogin(function (request, reply) {
        reply('Hello, world!');
    })
});

server.route({
    method: 'GET',
    path: '/xhr/getUserInfo.do',
    handler: OpenIDDecoractor.ajaxNeedLogin(function(request, reply){
        var obj = {
            "code": 200,
            "data": {
                "userId": 0,
                "userName": "stone-jin"
            }
        };
        reply(obj);
    })
});

server.start(function(error){
    console.log('Server running at: ' + server.info.uri);
});