SessionStore: Improve cookie expiration check

* Don't mutate `sess.cookie.expires`.
  * Allow `sess.cookie` to be nullish.
  * Always compare `Date` objects.
This commit is contained in:
Richard Hansen 2021-12-19 03:31:34 -05:00
parent 928c598ecf
commit 4d498725c7
2 changed files with 5 additions and 9 deletions

View file

@ -11,12 +11,8 @@ class SessionStore extends Store {
async _get(sid) {
logger.debug(`GET ${sid}`);
const s = await DB.get(`sessionstorage:${sid}`);
if (!s) return;
if (typeof s.cookie.expires === 'string') s.cookie.expires = new Date(s.cookie.expires);
if (s.cookie.expires && new Date() >= s.cookie.expires) {
await this._destroy(sid);
return;
}
const {cookie: {expires} = {}} = s || {};
if (expires && new Date() >= new Date(expires)) return await this._destroy(sid);
return s;
}