mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-29 20:51:48 +00:00
Add delete auth session endpoint to logout individual session
This commit is contained in:
parent
a7b380cd7a
commit
1876bfbfe7
4 changed files with 78 additions and 3 deletions
|
|
@ -4,7 +4,7 @@ const Logger = require('../Logger')
|
|||
const SocketAuthority = require('../SocketAuthority')
|
||||
const Database = require('../Database')
|
||||
const { sort } = require('../libs/fastSort')
|
||||
const { toNumber, isNullOrNaN } = require('../utils/index')
|
||||
const { toNumber, isNullOrNaN, isUUID } = require('../utils/index')
|
||||
const userStats = require('../utils/queries/userStats')
|
||||
const parseUserAgent = require('../utils/parsers/parseUserAgent')
|
||||
|
||||
|
|
@ -71,6 +71,38 @@ class MeController {
|
|||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* DELETE: /api/me/sessions/:id
|
||||
*
|
||||
* @param {RequestWithUser} req
|
||||
* @param {Response} res
|
||||
*/
|
||||
async deleteSession(req, res) {
|
||||
if (req.user.isGuest) {
|
||||
return res.sendStatus(403)
|
||||
}
|
||||
|
||||
if (!isUUID(req.params.id)) {
|
||||
return res.sendStatus(400)
|
||||
}
|
||||
|
||||
const session = await Database.sessionModel.findOne({
|
||||
where: {
|
||||
id: req.params.id,
|
||||
userId: req.user.id
|
||||
}
|
||||
})
|
||||
|
||||
if (!session) {
|
||||
return res.sendStatus(404)
|
||||
}
|
||||
|
||||
await Database.sessionModel.destroy({ where: { id: session.id } })
|
||||
Logger.info(`[MeController] User ${req.user.username} deleted auth session ${session.id}`)
|
||||
|
||||
res.json({ success: true })
|
||||
}
|
||||
|
||||
/**
|
||||
* GET: /api/me/progress
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue