summaryrefslogtreecommitdiffstats
path: root/routes/authRoutes.js
diff options
context:
space:
mode:
authorGravatar piotrruss <mail@pruss.it> 2023-08-21 22:19:54 +0200
committerGravatar piotrruss <mail@pruss.it> 2023-08-21 22:23:57 +0200
commit9fb0815b575cfc23ced6722b1a164328bd3cff1a (patch)
tree971a10bb74824d007cb74082a0a1d07dba3f30e2 /routes/authRoutes.js
parent4d28ac359b25d89d0dbb42dd3a6d32269eebc619 (diff)
downloadauth-service-9fb0815b575cfc23ced6722b1a164328bd3cff1a.tar.gz
auth-service-9fb0815b575cfc23ced6722b1a164328bd3cff1a.tar.bz2
auth-service-9fb0815b575cfc23ced6722b1a164328bd3cff1a.zip
refactor, new routes
Diffstat (limited to 'routes/authRoutes.js')
-rw-r--r--routes/authRoutes.js33
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