diff --git a/task-manager/src/middleware/auth.js b/task-manager/src/middleware/auth.js index 9cf6862..6bffd81 100644 --- a/task-manager/src/middleware/auth.js +++ b/task-manager/src/middleware/auth.js @@ -11,6 +11,7 @@ const auth = async (req, res, next) => { throw new Error() } + req.token = token req.user = user next() } catch (e) { diff --git a/task-manager/src/routers/user.js b/task-manager/src/routers/user.js index 464b778..ac455d0 100644 --- a/task-manager/src/routers/user.js +++ b/task-manager/src/routers/user.js @@ -25,6 +25,30 @@ router.post('/users/login', async (req, res) => { } }) +router.post('/users/logout', auth, async (req, res) => { + try { + req.user.tokens = req.user.tokens.filter((token) => { + return token.token !== req.token + }) + await req.user.save() + + res.send() + } catch(e) { + res.status(500).send() + } +}) + +router.post('/users/logoutAll', auth, async (req, res) => { + try { + req.user.tokens = [] + await req.user.save() + + res.send() + } catch(e) { + res.status(500).send() + } +}) + router.get('/users/me', auth, async (req, res) => { res.send(req.user) })