fix(auth): harden session lifecycle, reset links, and OIDC logging
- Fix session store expiry: cookie.maxAge is already in milliseconds, so stored sessions outlived the cookie by 1000x - Regenerate the session ID on login, first-run setup, and OIDC login to prevent session fixation - Mark session cookies Secure on TLS connections (secure: 'auto') and add TRUST_PROXY support for reverse-proxy deployments - Build password reset links from APP_BASE_URL instead of the Host header to prevent reset-link poisoning - Rate-limit forgot-password requests (5 per IP per 15 minutes) - Strip OIDC debug logging that leaked authorization codes, subject IDs, and emails to logs
This commit is contained in:
@@ -28,8 +28,9 @@ class SessionStore extends Store {
|
||||
|
||||
set(sid, sess, cb) {
|
||||
try {
|
||||
// cookie.maxAge is already in milliseconds
|
||||
const maxAge = (sess.cookie && sess.cookie.maxAge)
|
||||
? sess.cookie.maxAge * 1000
|
||||
? sess.cookie.maxAge
|
||||
: 7 * 24 * 60 * 60 * 1000;
|
||||
const expired = Date.now() + maxAge;
|
||||
this.db.prepare(
|
||||
|
||||
Reference in New Issue
Block a user