node.js - NodeJS - Hapi :Resource interpreted as Stylesheet but transferred with MIME type text/htm -
hey guys i'm trying create authentication hapi,got code example , changed how want there 1 problem can't serve static files css/js tried make changes seems else should changed.
since did serve static files before hapi no problems think issue here cause either authentication / login (handler)
the error
> login:3 resource interpreted stylesheet transferred mime > type text/html: "http://localhost:8000/login". login:4 resource > interpreted stylesheet transferred mime type text/html: > "http://localhost:8000/login".
what guys think?
here server & login (jade) code :
server
'use strict'; const hapi = require('hapi'); const vision = require('vision'); const inert = require('inert'); const path = require('path') const internals = {}; let uuid = 1; // use seq instead of proper unique identifiers demo const roothandler = function (request, reply) { reply.view('index', { title: 'examples/views/jade/index.js | hapi ' + request.server.version, message: 'index - hello world!' }); }; const users = { geek: { id: 'john', password: 'password', name: 'john doe' } }; const login = function (request, reply) { if (request.auth.isauthenticated) { return reply.redirect('/'); } let message = ''; let account = null; if (request.method === 'post') { if (!request.payload.username || !request.payload.password) { message = 'missing username or password'; } else { account = users[request.payload.username]; if (!account || account.password !== request.payload.password) { message = 'invalid username or password'; } } } if (request.method === 'get' || message) { return reply.view('login')}; const sid = string(++uuid); request.server.app.cache.set(sid, { account: account }, 0, (err) => { if (err) { return reply(err); } request.cookieauth.set({ sid: sid }); return reply.redirect('/'); }); }; const logout = function (request, reply) { request.cookieauth.clear(); return reply.redirect('/'); }; const server = new hapi.server(); server.connection({ port: 8000 }); server.register(require('../'), (err) => { if (err) { throw err; } server.register(require('vision'), (err) => { if (err) { console.log("failed load vision."); } }); server.register(inert, () => {}); server.views({ engines: { jade: require('jade') }, path: __dirname + '/templates', compileoptions: { pretty: true } }); const cache = server.cache({ segment: 'sessions', expiresin: 3 * 24 * 60 * 60 * 1000 }); server.app.cache = cache; server.auth.strategy('session', 'cookie', true, { password: 'password-should-be-32-characters', cookie: 'sid-example', redirectto : '/login', issecure: false, validatefunc: function (request, session, callback) { cache.get(session.sid, (err, cached) => { if (err) { return callback(err, false); } if (!cached) { return callback(null, false); } return callback(null, true, cached.account); }); } }); console.log(cache); server.route( { method: 'get', path: '/', config: { handler: roothandler } }); server.route({ method: ['get', 'post'], path: '/login', config:{ handler: login, auth: { mode: 'try' }, plugins: { 'hapi-auth-cookie': { redirectto: false } } } }); server.route( { method: 'get', path: '/logout', config: { handler: logout } }); server.route({ method: 'get', path: '/bower_components/{params*}', handler: { directory: { path:'bower_components' } } }); server.route({ method: 'get', path: '/public/{params*}', handler: { directory: { path:'public' } } }); server.start((err) => { if (err) { throw err; } console.log('server listening @ ' + server.info.uri); }); });
(part of) login.jade
doctype html html(lang='en') script(src='bower_components/angular/angular.min.js') link(rel='stylesheet' type='text/css' href='../bower_components/bootstrap/dist/css/bootstrap.min.css') link(rel='stylesheet', type='text/css', href='/public/css/main.css') link(rel='stylesheet', href='public/css/normalize.css') link(rel='stylesheet prefetch', href='https://s3-us-west-2.amazonaws.com/s.cdpn.io/110131/responsive.css') link(rel='stylesheet', href='public/css/style.css')
Comments
Post a Comment