|
|
@@ -16,6 +16,7 @@ var express = require('express')
|
|
|
, middleware = require('./lib/middlewares')
|
|
|
, time = require('time')
|
|
|
, async = require('async')
|
|
|
+ , session = require('express-session')
|
|
|
, models
|
|
|
, config
|
|
|
, server
|
|
|
@@ -27,6 +28,7 @@ time.tzset('Asia/Tokyo');
|
|
|
|
|
|
var app = express();
|
|
|
var env = app.get('env');
|
|
|
+var days = (1000*3600*24*30);
|
|
|
|
|
|
// mongoUri = mongodb://user:password@host/dbname
|
|
|
var mongoUri = process.env.MONGOLAB_URI
|
|
|
@@ -38,14 +40,29 @@ mongo.connect(mongoUri);
|
|
|
|
|
|
sessionConfig = {
|
|
|
rolling: true,
|
|
|
- secret: process.env.SECRET_TOKEN || 'this is default session secret'
|
|
|
+ secret: process.env.SECRET_TOKEN || 'this is default session secret',
|
|
|
+ resave: false,
|
|
|
+ saveUninitialized: true,
|
|
|
+ cookie: {
|
|
|
+ maxAge: days,
|
|
|
+ },
|
|
|
};
|
|
|
+var redisUrl = process.env.REDISTOGO_URL
|
|
|
+ || process.env.REDIS_URL
|
|
|
+ || null;
|
|
|
+
|
|
|
+if (redisUrl) {
|
|
|
+ var ru = require("url").parse(redisUrl);
|
|
|
+ var redis = require("redis");
|
|
|
+ var redisClient = redis.createClient(ru.port, ru.hostname);
|
|
|
+ if (ru.auth) {
|
|
|
+ redisClient.auth(ru.auth.split(":")[1]);
|
|
|
+ }
|
|
|
|
|
|
-if (process.env.REDIS_URL) {
|
|
|
- RedisStore = require('connect-redis')(express);
|
|
|
+ RedisStore = require('connect-redis')(session);
|
|
|
sessionConfig.store = new RedisStore({
|
|
|
prefix: 'crowi:sess:',
|
|
|
- url: process.env.REDIS_URL
|
|
|
+ client: redisClient,
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -59,7 +76,7 @@ app.set('views', __dirname + '/views');
|
|
|
app.use(express.methodOverride());
|
|
|
app.use(express.bodyParser());
|
|
|
app.use(express.cookieParser());
|
|
|
-app.use(express.session(sessionConfig));
|
|
|
+app.use(session(sessionConfig));
|
|
|
app.use(flash());
|
|
|
|
|
|
configModel = require('./models/config')(app);
|
|
|
@@ -81,8 +98,7 @@ async.series([
|
|
|
|
|
|
// configure application
|
|
|
app.use(function(req, res, next) {
|
|
|
- var days = (1000*3600*24*30)
|
|
|
- , now = new Date()
|
|
|
+ var now = new Date()
|
|
|
, fbparams = {}
|
|
|
, config = app.set('config');
|
|
|
|
|
|
@@ -91,9 +107,6 @@ async.series([
|
|
|
|
|
|
req.config = config;
|
|
|
|
|
|
- req.session.cookie.expires = new Date(Date.now() + days);
|
|
|
- req.session.cookie.maxAge = days;
|
|
|
-
|
|
|
config.crowi['app:url'] = req.baseUrl = (req.headers['x-forwarded-proto'] == 'https' ? 'https' : req.protocol) + "://" + req.get('host');
|
|
|
res.locals({
|
|
|
req: req,
|