Express session is empty in Safari
With Safari it is required to pass in credentials: 'include' in request header, otherwise it doesn't send cookies.
You might also want to set a global response header after your set your session middleware by something like this:
app.use(function(req, res, next) { res.set('credentials', 'include'); res.set('Access-Control-Allow-Credentials', true); res.set('Access-Control-Allow-Origin', req.headers.origin); res.set('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.set('Access-Control-Allow-Headers', 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept'); next();});