@@ -54,21 +54,6 @@ function createApp (argv = {}) {
5454 app . locals . email = new EmailService ( argv . email )
5555 }
5656
57- var sessionSettings = {
58- secret : ldp . secret || uuid . v1 ( ) ,
59- saveUninitialized : false ,
60- resave : false ,
61- rolling : true
62- }
63-
64- // Cookies should set to be secure if https is on
65- if ( ldp . webid || multiUser ) {
66- sessionSettings . cookie = {
67- secure : true ,
68- maxAge : 24 * 60 * 60 * 1000
69- }
70- }
71-
7257 // Set X-Powered-By
7358 app . use ( function ( req , res , next ) {
7459 res . set ( 'X-Powered-By' , 'solid-server' )
@@ -84,7 +69,7 @@ function createApp (argv = {}) {
8469 app . use ( '/' , capabilityDiscovery ( ) )
8570
8671 // Use session cookies
87- app . use ( session ( sessionSettings ) )
72+ app . use ( session ( sessionSettings ( argv . webid , argv . host ) ) )
8873
8974 // Adding proxy
9075 if ( ldp . proxy ) {
@@ -153,3 +138,32 @@ function ensureAccountTemplate () {
153138
154139 return accountTemplate
155140}
141+
142+ /**
143+ * Returns a settings object for Express.js sessions.
144+ *
145+ * @param secureCookies {boolean}
146+ * @param host {SolidHost}
147+ *
148+ * @return {Object } `express-session` settings object
149+ */
150+ function sessionSettings ( secureCookies , host ) {
151+ let sessionSettings = {
152+ secret : uuid . v1 ( ) ,
153+ saveUninitialized : false ,
154+ resave : false ,
155+ rolling : true ,
156+ cookie : {
157+ maxAge : 24 * 60 * 60 * 1000
158+ }
159+ }
160+ // Cookies should set to be secure if https is on
161+ if ( secureCookies ) {
162+ sessionSettings . cookie . secure = true
163+ }
164+
165+ // Determine the cookie domain
166+ sessionSettings . cookie . domain = host . cookieDomain
167+
168+ return sessionSettings
169+ }
0 commit comments