Add logout all devices button and extend auth logout endpoint

This commit is contained in:
advplyr 2026-07-24 17:44:03 -05:00
parent dc0b24a03f
commit e56c1099e6
4 changed files with 39 additions and 7 deletions

View file

@ -505,6 +505,25 @@ class TokenManager {
return null
}
/**
* Destroy all JWT sessions for the user that owns this refresh token
*
* @param {string} refreshToken
*/
async invalidateAllSessionsForRefreshToken(refreshToken) {
if (!refreshToken) return
const session = await Database.sessionModel.findOne({
where: {
[Op.or]: [{ refreshToken: refreshToken }, { lastRefreshToken: refreshToken }]
}
})
if (!session) return
const numDeleted = await Database.sessionModel.destroy({ where: { userId: session.userId } })
Logger.info(`[TokenManager] Invalidated all JWT sessions for user ${session.userId}, ${numDeleted} deleted`)
}
/**
* Invalidate a refresh token - used for logout
*