use page.redirect('/') after setting session, so don't have to use

middleware (don't need to use purl the whole time)
This commit is contained in:
Tyler Renelle
2012-08-06 16:55:51 -04:00
parent e3700bc183
commit 73e857049e
4 changed files with 16 additions and 26 deletions

View File

@@ -20,8 +20,13 @@ helpers = require('./helpers');
helpers.viewHelpers(view); helpers.viewHelpers(view);
get('/:uidParam?', function(page, model, _arg) { get('/:uidParam?', function(page, model, _arg) {
var uidParam, userId; var acceptableUid, uidParam, userId;
uidParam = _arg.uidParam; uidParam = _arg.uidParam;
acceptableUid = require('guid').isGuid(uidParam) || (uidParam === '3' || uidParam === '9');
if (acceptableUid) {
model.session.userId = uidParam;
return page.redirect('/');
}
userId = model.get('_userId'); userId = model.get('_userId');
return model.subscribe("users." + userId, function(err, user) { return model.subscribe("users." + userId, function(err, user) {
var guid, newUser, task, _i, _len, _ref1; var guid, newUser, task, _i, _len, _ref1;

View File

@@ -1,5 +1,5 @@
// Generated by CoffeeScript 1.3.3 // Generated by CoffeeScript 1.3.3
var ONE_YEAR, app, derby, express, expressApp, gzippo, habitrpgMobile, habitrpgSessions, http, path, publicPath, racer, root, server, serverError, store; var ONE_YEAR, app, derby, express, expressApp, gzippo, habitrpgMobile, http, path, publicPath, racer, root, server, serverError, store;
http = require('http'); http = require('http');
@@ -53,20 +53,9 @@ habitrpgMobile = function(req, res, next) {
return next(); return next();
}; };
habitrpgSessions = function(req, res, next) {
var acceptableUid, uidParam;
uidParam = req.url.split('/')[1];
acceptableUid = require('guid').isGuid(uidParam) || (uidParam === '3' || uidParam === '9');
if (acceptableUid) {
req.session || (req.session = {});
req.session.userId = uidParam;
}
return next();
};
expressApp.use(express.favicon()).use(gzippo.staticGzip(publicPath, { expressApp.use(express.favicon()).use(gzippo.staticGzip(publicPath, {
maxAge: ONE_YEAR maxAge: ONE_YEAR
})).use(express.compress()).use(express.cookieParser()).use(habitrpgSessions).use(store.sessionMiddleware({ })).use(express.compress()).use(express.cookieParser()).use(store.sessionMiddleware({
secret: process.env.SESSION_SECRET || 'YOUR SECRET HERE', secret: process.env.SESSION_SECRET || 'YOUR SECRET HERE',
cookie: { cookie: {
maxAge: ONE_YEAR maxAge: ONE_YEAR

View File

@@ -16,6 +16,14 @@ helpers.viewHelpers(view)
get '/:uidParam?', (page, model, {uidParam}) -> get '/:uidParam?', (page, model, {uidParam}) ->
# PURL pseudo-auth: Previously saved session (eg, http://localhost/{guid}) (temporary solution until authentication built)
acceptableUid = require('guid').isGuid(uidParam) or (uidParam in ['3','9'])
if acceptableUid# && model.session.userId!=uidParam
# model.fetch "users.#{uidParam}", (err, user) -> #test whether user exists
# if user.get('id')
model.session.userId = uidParam
return page.redirect('/')
# The session middleware will assign a _userId automatically # The session middleware will assign a _userId automatically
userId = model.get '_userId' userId = model.get '_userId'

View File

@@ -35,17 +35,6 @@ habitrpgMobile = (req, res, next) ->
model.set '_mobileDevice', /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(req.header 'User-Agent') model.set '_mobileDevice', /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(req.header 'User-Agent')
next() next()
# PURL pseudo-auth: Previously saved session (eg, http://localhost/{guid}) (temporary solution until authentication built)
habitrpgSessions = (req, res, next) ->
uidParam = req.url.split('/')[1]
acceptableUid = require('guid').isGuid(uidParam) or (uidParam in ['3','9'])
if acceptableUid# and req.session.userId!=uidParam
# model.fetch "users.#{uidParam}", (err, user) -> #test whether user exists
# if user.get('id')
req.session ||= {}
req.session.userId = uidParam
next()
expressApp expressApp
.use(express.favicon()) .use(express.favicon())
# Gzip static files and serve from memory # Gzip static files and serve from memory
@@ -60,7 +49,6 @@ expressApp
# Uncomment and supply secret to add Derby session handling # Uncomment and supply secret to add Derby session handling
# Derby session middleware creates req.session and socket.io sessions # Derby session middleware creates req.session and socket.io sessions
.use(express.cookieParser()) .use(express.cookieParser())
.use(habitrpgSessions)
.use(store.sessionMiddleware .use(store.sessionMiddleware
secret: process.env.SESSION_SECRET || 'YOUR SECRET HERE' secret: process.env.SESSION_SECRET || 'YOUR SECRET HERE'
cookie: {maxAge: ONE_YEAR} cookie: {maxAge: ONE_YEAR}