Skip to content

Instantly share code, notes, and snippets.

@cosminnicula
Created June 8, 2012 15:39
Show Gist options
  • Save cosminnicula/2896219 to your computer and use it in GitHub Desktop.
Save cosminnicula/2896219 to your computer and use it in GitHub Desktop.
node.js express authorize static resources
app.use(express.static(__dirname + './../public/default'));
//Session support
app.use(express.cookieParser());
app.use(express.session({
key : 'sid',
secret : sessionSecret,
//1h * 24(hours per day) * 365(days per year)
cookie : {
expires : new Date(Date.now() + 3600000 * 24 * 365)
},
store : new MongoStore(dbSessionsTable.connectionString)
}));
app.use(function(req, res, next) {
if(req.path.indexOf('/admin') === 0) {
if(req.session && req.session.user) {
next();
} else {
console.log('login failed');
res.redirect('/#login');
}
} else {
next();
}
});
app.use('/admin', express.static(__dirname + './../public/admin'));
@milani
Copy link

milani commented Jun 8, 2012

var express = require('express');
var path = require('path');
var app = express.createServer();

var publicPath = './public';
var adminPath = './admin';

app.use(express.static( path.resolve( publicPath ) ));

function handleLogin (req,res,next){
  var staticHandler = express.static(path.resolve(adminPath));
  var userLoggedIn = true;
  if(userLoggedIn) {
     console.log('admin static handler');
     staticHandler.apply(null,arguments);
  }else{
     //redirect to login page
    console.log('login page');
  }
};


app.get('/admin/*',handleLogin);

app.listen(3000);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment