Skip to content

Instantly share code, notes, and snippets.

@dancashman
Last active August 29, 2015 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dancashman/db0ded1cd1c3ce80e752 to your computer and use it in GitHub Desktop.
Save dancashman/db0ded1cd1c3ce80e752 to your computer and use it in GitHub Desktop.
simple express server v4.x with basic-auth module
#!/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