expressjs / expressjs/session

Custom way of session rolling

Open
#1,094 1 comment 0 reactions 0 assignees View on GitHub
question
Dominant language
JavaScript
Stars
6.4k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

My goal is to extend the session expiration when 2/3 of its duration has passed instead of doing this on every request.

For that, I've kept the `rolling` option disabled and I've written a custom middleware as follows:

```
export const sessionTouchMiddleware = (req: Request, _res: Response, next: NextFunction) => {
if (!req.session.userId || !req.session.cookie) {
return next()
}

const { originalMaxAge, expires } = req.session.cookie

if (!originalMaxAge || !expires) {
return next()
}

const sessionStart = expires.getTime() - originalMaxAge
const elapsedMs = Date.now() - sessionStart

// Touch the session if two-thirds of its lifespan elapsed
if (elapsedMs >= originalMaxAge * (2 / 3)) {
req.session.cookie.maxAge = originalMaxAge
req.session.touch()
}

next()
}
```

The above has no effect. I'm using `connect-pg-simple` store. Any help is appreciated.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.