Last active
August 29, 2015 14:08
-
-
Save dancashman/db0ded1cd1c3ce80e752 to your computer and use it in GitHub Desktop.
simple express server v4.x with basic-auth module
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env node | |
'use strict'; | |
// Set default node environment to development this is mainly used for my own heroku integration | |
process.env.NODE_ENV = process.env.NODE_ENV || 'development'; | |
var express = require('express'); | |
var errorHandler = require('errorhandler'); | |
var logger = require('morgan'); | |
var basicAuth = require('basic-auth'); | |
var app = express(); | |
var auth = function(req, res, next) { | |
function unauthorized(res) { | |
res.set('WWW-Authenticate', 'Basic realm=Authorization Required'); | |
return res.send(401); | |
} | |
var user = basicAuth(req); | |
if (!user || !user.name || !user.pass) { | |
return unauthorized(res); | |
} | |
//change this to something better | |
if (user.name === 'test_user' && user.pass === 'test_password') { | |
return next(); | |
} else { | |
return unauthorized(res); | |
} | |
}; | |
app.use(auth); | |
app.use(logger('dev')); | |
//change to point to your directory that you wil be serving out of | |
app.use(express.static(__dirname + '/../build')); | |
app.use(errorHandler({ | |
dumpExceptions: true, | |
showStack: true | |
})); | |
app.set('port', process.env.PORT || 3000); | |
app.get('/', auth, function(req, res) { | |
res.send(200, 'Authenticated'); | |
}); | |
var server = app.listen(app.get('port'), function() { | |
console.log('Express server listening on %d, in %s mode', | |
server.address().port, | |
app.get('env')); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment