diff options
Diffstat (limited to 'routes/authRoutes.js')
-rw-r--r-- | routes/authRoutes.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/routes/authRoutes.js b/routes/authRoutes.js new file mode 100644 index 0000000..110e7f4 --- /dev/null +++ b/routes/authRoutes.js @@ -0,0 +1,33 @@ +const router = require('express').Router() +const User = require('../model/User') + +// Logout (pass sessionId or will logout one from jwt) +router.post('/logout', async (req, res) => { + try { + const { email, sessionId } = req.user + + if (!email || !(req.body.sessionId || sessionId)) throw new Error() + + await User.removeSession({ email, sessionId: req.body.sessionId || sessionId }) + + res.status(204).send() + } catch (err) { + console.log(err) + res.status(401).send({ error: 'Could not logout' }) + } +}) + +// User sessions +router.get("/sessions", async (req, res) => { + const { email } = req.user + + try { + const sessions = await User.getSessions({ email }) + + res.send({ sessions }) + } catch (err) { + res.status(401).send({ error: 'Error getting sessions' }) + } +}) + +module.exports = router |