]> git.example.dev Git - binbsis50.git/commitdiff
bumped Primus to version 2.1.x
authorLuigi Pinca <luigipinca@gmail.com>
Sun, 30 Mar 2014 15:49:37 +0000 (17:49 +0200)
committerLuigi Pinca <luigipinca@gmail.com>
Sun, 30 Mar 2014 15:49:37 +0000 (17:49 +0200)
app.js
lib/sparks.js
package.json

diff --git a/app.js b/app.js
index 693ac6b61173624895085b99ba25d8a1c7feed7d..e0073018d758a2e7f52e4c9ae3dd50247a35e587 100644 (file)
--- a/app.js
+++ b/app.js
@@ -2,8 +2,7 @@
  * Module dependencies.
  */
 
-var cookieParser = require('cookie-parser')
-  , errorHandler = require('./lib/middleware/errorHandler')
+var errorHandler = require('./lib/middleware/errorHandler')
   , express = require('express')
   , favicon = require('static-favicon')
   , http = require('http')
@@ -11,6 +10,7 @@ var cookieParser = require('cookie-parser')
   , session = require('express-session')
   , RedisStore = require('connect-redis')(session)
   , secret = process.env.SITE_SECRET || 'shhhh, very secret'
+  , cookieParser = require('cookie-parser')(secret)
   , site = require('./routes/site')
   , urlencoded = require('body-parser').urlencoded
   , user = require('./routes/user')
@@ -30,7 +30,7 @@ app.set('view engine', 'jade');
 app.use('/static', express.static(pub, {maxAge: 2419200000})); // 4 weeks = 2419200000 ms
 app.use(favicon(pub + '/img/favicon.ico', {maxAge: 2419200000}));
 app.use(urlencoded());
-app.use(cookieParser(secret));
+app.use(cookieParser);
 app.use(session({
   cookie: {maxAge: 14400000}, // 4 h = 14400000 ms
   rolling: true,
@@ -63,7 +63,7 @@ app.use(errorHandler);
  */
 
 require('./lib/rooms')({
-  secret: secret,
+  parser: cookieParser,
   server: server,
   sessionstore: sessionstore
 });
index 951c71a130747293968960d36bd24e04953a380a..d0d5dadf703f3bc6854eea9769ec0f1d6affcb76 100644 (file)
@@ -5,14 +5,11 @@
 var config = require('../config')
   , fs = require('fs')
   , minify = require('uglify-js').minify
-  , parseCookie = require('cookie-parser/node_modules/cookie').parse
-  , parseSignedCookies = require('cookie-parser/lib/parse').signedCookies
   , Primus = require('primus')
   , primus
   , primusemitter = require('primus-emitter')
   , primusrooms = require('primus-rooms')
   , rooms = require('./rooms').rooms
-  , secret
   , sessionstore
   , sparks = Object.create(null) // Sparks of all rooms
   , utils = require('./utils')
@@ -24,7 +21,6 @@ var config = require('../config')
  */
 
 module.exports = function(options) {
-  secret = options.secret;
   sessionstore = options.sessionstore;
 
   // Create Primus instance
@@ -36,10 +32,14 @@ module.exports = function(options) {
     },
     transformer: 'websockets'
   });
-  
-  // Minify and store the client-side library in the public directory
-  var library = minify(primus.library(), {fromString: true});
-  fs.writeFileSync(__dirname + '/../public/js/primus.min.js', library.code);
+
+  // Remove unneeded middleware
+  primus.remove('cors');
+  primus.remove('primus.js');
+  primus.remove('spec');
+
+  // Add cookieParser middleware
+  primus.before('cookies', options.parser, 0);
 
   primus.on('connection', connection);
   primus.on('joinroom', joinRoom);
@@ -54,6 +54,11 @@ module.exports = function(options) {
       console.error(err.stack);
     }
   });
+
+  // Minify and store the client-side library in the public directory
+  var library = minify(primus.library(), {fromString: true});
+  fs.writeFileSync(__dirname + '/../public/js/primus.min.js', library.code);
+
   return {primus: primus, sparks: sparks};
 };
 
@@ -62,21 +67,19 @@ module.exports = function(options) {
  */
 
 var authorize = function(req, authorized) {
-  var cookie = req.headers.cookie;
-  if(!cookie) {
-    var err = new Error('no cookie transmitted');
+  var cookies = req.signedCookies;
+  if (!cookies.hasOwnProperty('connect.sid')) {
+    var err = new Error('connect.sid cookie not transmitted');
     console.error(err.message);
     return authorized(err);
   }
-  cookie = parseCookie(cookie);
-  cookie = parseSignedCookies(cookie, secret);
-  sessionstore.get(cookie['connect.sid'], function(err, session) {
+  sessionstore.get(cookies['connect.sid'], function(err, session) {
     if (err || !session) {
       err = err || new Error('session not found');
       console.error(err.message);
       return authorized(err);
     }
-    req.headers.session = session;
+    req.user = session.user;
     authorized();
   });
 };
@@ -86,8 +89,7 @@ var authorize = function(req, authorized) {
  */
 
 var connection = function(spark) {
-  var user = spark.headers.session.user;
-  delete spark.headers.session;
+  var user = spark.request.user;
   spark.on('getoverview', function(callback) {
     if (!isFunction(callback)) {
       return;
index 5b02cd3980338b3f99f1047be06e1e283c0a7580..bd40b181eb8706c0bbed0c5d22f56ac718419889 100644 (file)
@@ -1,7 +1,7 @@
 {
   "analyze": false,
   "dependencies": {
-    "async": "0.2.x",
+    "async": "0.6.x",
     "body-parser": "1.0.x",
     "canvas": "1.1.x",
     "connect-redis": "1.5.x",
@@ -10,7 +10,7 @@
     "express-session": "1.0.x",
     "jade": "1.3.x",
     "nodemailer": "0.6.x",
-    "primus": "2.0.x",
+    "primus": "2.1.x",
     "primus-emitter": "3.0.x",
     "primus-rooms": "3.0.x",
     "redis": "0.10.x",
@@ -34,5 +34,5 @@
     "start": "node app.js"
   },
   "subdomain": "binb",
-  "version": "0.4.5-2"
+  "version": "0.4.6"
 }