UNPKG

humble-auth

Version:

A hapi authentication strategy using humble-session.

83 lines (74 loc) 1.8 kB
'use strict'; var Hapi = require('hapi'); var hapiVtree = require('hapi-vtree'); var humbleSession = require('humble-session'); var humbleAuth = require('../lib'); var h = require('virtual-dom/h'); var server = new Hapi.Server(); server.connection({ port: '6444' }); server.register([{ register: require('simple-session-store') }, { register: humbleSession, options: { password: 'some-pass', isSecure: false, sessionStoreName: 'simple-session-store' } }, { register: humbleAuth }, { register: hapiVtree }], function(err) { if (err) { console.log('Failed to start server.'); return; } server.auth.strategy('default', 'session'); server.route({ method: 'GET', path: '/', config: { handler: function(req, reply) { reply.vtree(h('div', [ h('div', 'Hey, this is a public page'), h('form', { method: 'post' }, [ h('button', { type: 'submit' }, 'log in') ]) ])); } } }); server.route({ method: 'POST', path: '/', config: { handler: function(req, reply) { reply.login({ name: 'John' }, function(err) { reply.redirect('/private'); }); } } }); server.route({ method: 'GET', path: '/private', config: { auth: 'default', handler: function(req, reply) { reply.vtree(h('div', [ h('div', 'Hey, this is a private page'), h('div', [ 'your name is ', req.auth.credentials.name ]), ])); } } }); server.start(function() { console.log('Server running at:', server.info.uri); }); });