Skip to content

Commit b7ff72b

Browse files
committed
Giving the logout feature
1 parent 3f79f8e commit b7ff72b

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

Diff for: src/middleware/auth.js

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ var auth = async (req,res, next) => {
1010
if (!user) {
1111
throw new Error("Token is invalid");
1212
}
13+
14+
req.token = token;
1315
req.user = user;
1416
next();
1517
} catch (e) {

Diff for: src/routers/user.js

+21-8
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,16 @@ var User = require("../models/users");
44
var auth = require('../middleware/auth');
55

66
//
7-
// ─── GET ROUTE ──────────────────────────────────────────────────────────────────
7+
// ─── VIEW ROUTE ──────────────────────────────────────────────────────────────────
88
//
99

10-
router.get('/users',auth,async (req, res)=>{
11-
try {
12-
var users = await User.find({});
13-
res.send(users);
14-
} catch (error) {
15-
return res.status(500).send("Error: "+error);
16-
}
10+
//We've changed the route below to prevent access of data of other users
11+
router.get('/users/me',auth,async (req, res)=>{
12+
res.send(req.user);
1713
});
1814

15+
// ────────────────────────────────────────────────────────────────────────────────
16+
1917
router.get('/users/:id', async (req, res)=>{
2018
var _id = req.params.id;
2119

@@ -64,6 +62,21 @@ router.post('/users/login',async (req, res) => {
6462
}
6563
})
6664

65+
//
66+
// ─── LOG OUT ────────────────────────────────────────────────────────────────────
67+
//
68+
69+
router.post('/users/logout', auth, async (req, res) => {
70+
try {
71+
req.user.tokens = req.user.tokens.filter((token) => {
72+
return token.token!=req.token;
73+
})
74+
75+
await req.user.save();
76+
} catch (e) {
77+
res.status(500).send();
78+
}
79+
})
6780

6881
//
6982
// ─── PATCH ROUTE ────────────────────────────────────────────────────────────────

0 commit comments

Comments
 (0)