mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-27 03:31:46 +00:00
Add logout all devices button and extend auth logout endpoint
This commit is contained in:
parent
dc0b24a03f
commit
e56c1099e6
4 changed files with 39 additions and 7 deletions
|
|
@ -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
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue