add session regeneration when login

This commit is contained in:
Henry 2025-07-21 13:37:09 +01:00
parent dca91b979b
commit 39665e133b
5 changed files with 51 additions and 16 deletions

View File

@ -259,11 +259,18 @@ export const initializeJwtCookieMiddleware = async (app: express.Application, id
if (identityManager.isEnterprise() && !identityManager.isLicenseValid()) { if (identityManager.isEnterprise() && !identityManager.isLicenseValid()) {
return res.status(401).json({ redirectUrl: '/license-expired' }) return res.status(401).json({ redirectUrl: '/license-expired' })
} }
req.login(user, { session: true }, async (error) => {
if (error) { req.session.regenerate((regenerateErr) => {
return next ? next(error) : res.status(401).json(error) if (regenerateErr) {
return next ? next(regenerateErr) : res.status(500).json({ message: 'Session regeneration failed' })
} }
return setTokenOrCookies(res, user, true, req)
req.login(user, { session: true }, async (error) => {
if (error) {
return next ? next(error) : res.status(401).json(error)
}
return setTokenOrCookies(res, user, true, req)
})
}) })
} catch (error: any) { } catch (error: any) {
return next ? next(error) : res.status(401).json(error) return next ? next(error) : res.status(401).json(error)

View File

@ -92,9 +92,16 @@ class Auth0SSO extends SSOBase {
} }
return next ? next(err) : res.status(401).json(err) return next ? next(err) : res.status(401).json(err)
} }
req.login(user, { session: true }, async (error) => {
if (error) return next ? next(error) : res.status(401).json(error) req.session.regenerate((regenerateErr) => {
return setTokenOrCookies(res, user, true, req, true, true) if (regenerateErr) {
return next ? next(regenerateErr) : res.status(500).json({ message: 'Session regeneration failed' })
}
req.login(user, { session: true }, async (error) => {
if (error) return next ? next(error) : res.status(401).json(error)
return setTokenOrCookies(res, user, true, req, true, true)
})
}) })
} catch (error) { } catch (error) {
return next ? next(error) : res.status(401).json(error) return next ? next(error) : res.status(401).json(error)

View File

@ -48,9 +48,16 @@ class AzureSSO extends SSOBase {
} }
return next ? next(err) : res.status(401).json(err) return next ? next(err) : res.status(401).json(err)
} }
req.login(user, { session: true }, async (error) => {
if (error) return next ? next(error) : res.status(401).json(error) req.session.regenerate((regenerateErr) => {
return setTokenOrCookies(res, user, true, req, true, true) if (regenerateErr) {
return next ? next(regenerateErr) : res.status(500).json({ message: 'Session regeneration failed' })
}
req.login(user, { session: true }, async (error) => {
if (error) return next ? next(error) : res.status(401).json(error)
return setTokenOrCookies(res, user, true, req, true, true)
})
}) })
} catch (error) { } catch (error) {
return next ? next(error) : res.status(401).json(error) return next ? next(error) : res.status(401).json(error)

View File

@ -81,9 +81,16 @@ class GithubSSO extends SSOBase {
} }
return next ? next(err) : res.status(401).json(err) return next ? next(err) : res.status(401).json(err)
} }
req.login(user, { session: true }, async (error) => {
if (error) return next ? next(error) : res.status(401).json(error) req.session.regenerate((regenerateErr) => {
return setTokenOrCookies(res, user, true, req, true, true) if (regenerateErr) {
return next ? next(regenerateErr) : res.status(500).json({ message: 'Session regeneration failed' })
}
req.login(user, { session: true }, async (error) => {
if (error) return next ? next(error) : res.status(401).json(error)
return setTokenOrCookies(res, user, true, req, true, true)
})
}) })
} catch (error) { } catch (error) {
return next ? next(error) : res.status(401).json(error) return next ? next(error) : res.status(401).json(error)

View File

@ -97,9 +97,16 @@ class GoogleSSO extends SSOBase {
} }
return next ? next(err) : res.status(401).json(err) return next ? next(err) : res.status(401).json(err)
} }
req.login(user, { session: true }, async (error) => {
if (error) return next ? next(error) : res.status(401).json(error) req.session.regenerate((regenerateErr) => {
return setTokenOrCookies(res, user, true, req, true, true) if (regenerateErr) {
return next ? next(regenerateErr) : res.status(500).json({ message: 'Session regeneration failed' })
}
req.login(user, { session: true }, async (error) => {
if (error) return next ? next(error) : res.status(401).json(error)
return setTokenOrCookies(res, user, true, req, true, true)
})
}) })
} catch (error) { } catch (error) {
return next ? next(error) : res.status(401).json(error) return next ? next(error) : res.status(401).json(error)