mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-07-14 03:15:03 +02:00
Move invalidate refresh token to TokenManager
This commit is contained in:
parent
d3402e30c2
commit
7d6d3e6687
2 changed files with 23 additions and 9 deletions
|
@ -1,5 +1,4 @@
|
|||
const { Request, Response, NextFunction } = require('express')
|
||||
const { rateLimit } = require('express-rate-limit')
|
||||
const passport = require('passport')
|
||||
const JwtStrategy = require('passport-jwt').Strategy
|
||||
const ExtractJwt = require('passport-jwt').ExtractJwt
|
||||
|
@ -466,14 +465,7 @@ class Auth {
|
|||
|
||||
// Invalidate the session in database using refresh token
|
||||
if (refreshToken) {
|
||||
try {
|
||||
Logger.info(`[Auth] logout: Invalidating session for refresh token: ${refreshToken}`)
|
||||
await Database.sessionModel.destroy({
|
||||
where: { refreshToken }
|
||||
})
|
||||
} catch (error) {
|
||||
Logger.error(`[Auth] Error destroying session: ${error.message}`)
|
||||
}
|
||||
await this.tokenManager.invalidateRefreshToken(refreshToken)
|
||||
} else {
|
||||
Logger.info(`[Auth] logout: No refresh token on request`)
|
||||
}
|
||||
|
|
|
@ -379,6 +379,28 @@ class TokenManager {
|
|||
await Database.sessionModel.destroy({ where: { userId: user.id } })
|
||||
return null
|
||||
}
|
||||
|
||||
/**
|
||||
* Invalidate a refresh token - used for logout
|
||||
*
|
||||
* @param {string} refreshToken
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
async invalidateRefreshToken(refreshToken) {
|
||||
if (!refreshToken) {
|
||||
Logger.error(`[TokenManager] No refresh token provided to invalidate`)
|
||||
return false
|
||||
}
|
||||
|
||||
try {
|
||||
const numDeleted = await Database.sessionModel.destroy({ where: { refreshToken: refreshToken } })
|
||||
Logger.info(`[TokenManager] Refresh token ${refreshToken} invalidated, ${numDeleted} sessions deleted`)
|
||||
return true
|
||||
} catch (error) {
|
||||
Logger.error(`[TokenManager] Error invalidating refresh token: ${error.message}`)
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = TokenManager
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue