summaryrefslogtreecommitdiff
path: root/app.js
diff options
context:
space:
mode:
authorWu Cheng-Han2015-06-01 18:04:25 +0800
committerWu Cheng-Han2015-06-01 18:04:25 +0800
commitf7f8c901f4bc39c3ed0a2bdfe1cbaa1ee6957999 (patch)
tree1bb09442906fa8e258c670c87491c64b6de27e68 /app.js
parent4e64583a0b6175d2c9a6729ffde1472dd55d389c (diff)
Marked as 0.2.9
Diffstat (limited to 'app.js')
-rw-r--r--app.js40
1 files changed, 32 insertions, 8 deletions
diff --git a/app.js b/app.js
index d3984882..c5286974 100644
--- a/app.js
+++ b/app.js
@@ -5,6 +5,7 @@ var toobusy = require('toobusy-js');
var ejs = require('ejs');
var passport = require('passport');
var methodOverride = require('method-override');
+var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var compression = require('compression')
@@ -14,9 +15,12 @@ var fs = require('fs');
var shortid = require('shortid');
var imgur = require('imgur');
var formidable = require('formidable');
+var morgan = require('morgan');
+var passportSocketIo = require("passport.socketio");
//core
var config = require("./config.js");
+var logger = require("./lib/logger.js");
var User = require("./lib/user.js");
var Temp = require("./lib/temp.js");
var auth = require("./lib/auth.js");
@@ -45,7 +49,12 @@ if (config.usessl) {
var app = express();
var server = require('http').createServer(app);
}
+//socket io listen
var io = require('socket.io').listen(server);
+//logger
+app.use(morgan('combined', {
+ "stream": logger.stream
+}));
// connect to the mongodb
mongoose.connect(process.env.MONGOLAB_URI || config.mongodbstring);
@@ -65,6 +74,15 @@ var urlencodedParser = bodyParser.urlencoded({
extended: false
});
+//session store
+var sessionStore = new MongoStore({
+ mongooseConnection: mongoose.connection,
+ touchAfter: config.sessiontouch
+ },
+ function (err) {
+ console.log(err);
+ });
+
//compression
app.use(compression());
@@ -79,13 +97,7 @@ app.use(session({
expires: new Date(Date.now() + config.sessionlife),
},
maxAge: new Date(Date.now() + config.sessionlife),
- store: new MongoStore({
- mongooseConnection: mongoose.connection,
- touchAfter: config.sessiontouch
- },
- function (err) {
- console.log(err);
- })
+ store: sessionStore
}));
//middleware which blocks requests when we're too busy
@@ -293,6 +305,7 @@ app.get('/me', function (req, res) {
var profile = JSON.parse(user.profile);
res.send({
status: 'ok',
+ id: req.session.passport.user,
name: profile.displayName || profile.username
});
}
@@ -317,7 +330,9 @@ app.post('/uploadimage', function (req, res) {
.then(function (json) {
if (config.debug)
console.log('SERVER uploadimage success: ' + JSON.stringify(json));
- res.send({link:json.data.link});
+ res.send({
+ link: json.data.link
+ });
})
.catch(function (err) {
console.error(err);
@@ -337,6 +352,15 @@ app.get("/:noteId/:action", response.noteActions);
//socket.io secure
io.use(realtime.secure);
+//socket.io auth
+io.use(passportSocketIo.authorize({
+ cookieParser: cookieParser,
+ key: config.sessionname,
+ secret: config.sessionsecret,
+ store: sessionStore,
+ success: realtime.onAuthorizeSuccess,
+ fail: realtime.onAuthorizeFail
+}));
//socket.io heartbeat
io.set('heartbeat interval', config.heartbeatinterval);
io.set('heartbeat timeout', config.heartbeattimeout);