@@ -70,7 +70,7 @@ var defer = typeof setImmediate === 'function'
70
70
* Setup session store with the given `options`.
71
71
*
72
72
* @param {Object } [options]
73
- * @param {Object } [options.cookie] Options for cookie
73
+ * @param {Object|Function } [options.cookie] Options for cookie
74
74
* @param {Function } [options.genid]
75
75
* @param {String } [options.name=connect.sid] Session ID cookie name
76
76
* @param {Boolean } [options.proxy]
@@ -158,7 +158,7 @@ function session(options) {
158
158
store . generate = function ( req ) {
159
159
req . sessionID = generateId ( req ) ;
160
160
req . session = new Session ( req ) ;
161
- req . session . cookie = new Cookie ( cookieOptions ) ;
161
+ req . session . cookie = new Cookie ( typeof cookieOptions === 'function' ? cookieOptions ( req ) : cookieOptions ) ;
162
162
163
163
if ( cookieOptions . secure === 'auto' ) {
164
164
req . session . cookie . secure = issecure ( req , trustProxy ) ;
@@ -193,7 +193,8 @@ function session(options) {
193
193
194
194
// pathname mismatch
195
195
var originalPath = parseUrl . original ( req ) . pathname || '/'
196
- if ( originalPath . indexOf ( cookieOptions . path || '/' ) !== 0 ) {
196
+ var resolvedCookieOptions = typeof cookieOptions === 'function' ? cookieOptions ( req ) : cookieOptions
197
+ if ( originalPath . indexOf ( resolvedCookieOptions . path || '/' ) !== 0 ) {
197
198
debug ( 'pathname mismatch' )
198
199
next ( )
199
200
return
0 commit comments