Skip to content

Commit 1359ce4

Browse files
committed
JWT verify token feature added to all routes
1 parent 881c451 commit 1359ce4

File tree

3 files changed

+53
-4
lines changed

3 files changed

+53
-4
lines changed

src/helpers/jwtHelper.js

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,28 @@ const createToken = (payload) => {
1515
return token;
1616
};
1717

18-
export { createToken };
18+
const verifyToken = (event) => {
19+
const token = extractToken(event);
20+
try {
21+
const decoded = verify(token, process.env.JWT_SECRET);
22+
23+
// if the token has the correct data it is passed
24+
if (decoded.username === "anijit123") {
25+
return true;
26+
}
27+
return false;
28+
} catch (error) {
29+
return false;
30+
}
31+
};
32+
33+
const extractToken = (event) => {
34+
const { headers } = event;
35+
const tokenExtracted = headers.authorization
36+
? headers.authorization.replace("Bearer ", "")
37+
: "";
38+
39+
return tokenExtracted;
40+
};
41+
42+
export { createToken, verifyToken };

src/helpers/sendResponse.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export function sendResponse(statusCode, responseBody, jwtToken) {
22
const headers = {
3-
"Content-type": "application/json",
3+
"content-type": "application/json",
44
"x-xss-protection": "1; mode=block",
55
"x-frame-options": "DENY",
66
"content-security-policy":

src/services/userService.js

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,27 @@ import {
55
deleteUserFromDB,
66
updateUserToDB,
77
} from "../dbRelated/userdbOps.js";
8+
89
import { sendResponse } from "../helpers/sendResponse.js";
10+
import { verifyToken } from "../helpers/jwtHelper.js";
911

1012
const getAllUsersHandler = async (event) => {
13+
const verified = verifyToken(event);
14+
if (!verified) {
15+
return sendResponse(process.env.ERROR_FORBIDDEN_CODE, {
16+
message: "Token validation error",
17+
});
18+
}
1119
return getAllUsers();
1220
};
1321

1422
const addUserHandler = async (event) => {
23+
const verified = verifyToken(event);
24+
if (!verified) {
25+
return sendResponse(process.env.ERROR_FORBIDDEN_CODE, {
26+
message: "Token validation error",
27+
});
28+
}
1529
const reqBody = event?.body && JSON.parse(event.body);
1630

1731
// if the request body contains nothing
@@ -24,6 +38,12 @@ const addUserHandler = async (event) => {
2438
};
2539

2640
const deleteUserHandler = async (event) => {
41+
const verified = verifyToken(event);
42+
if (!verified) {
43+
return sendResponse(process.env.ERROR_FORBIDDEN_CODE, {
44+
message: "Token validation error",
45+
});
46+
}
2747
// extracting the recordId from query string
2848
const recordId = event?.queryStringParameters?.recordId;
2949

@@ -37,10 +57,15 @@ const deleteUserHandler = async (event) => {
3757
};
3858

3959
const updateUserHandler = async (event) => {
60+
const verified = verifyToken(event);
61+
if (!verified) {
62+
return sendResponse(process.env.ERROR_FORBIDDEN_CODE, {
63+
message: "Token validation error",
64+
});
65+
}
4066
const reqBody = event.body && JSON.parse(event.body);
41-
4267
const { updateId, updateDoc } = reqBody;
43-
68+
4469
// if update parameters are missing
4570
if (!updateId || !updateDoc || Object.keys(updateDoc).length === 0) {
4671
return sendResponse(process.env.ERROR_CODE, {

0 commit comments

Comments
 (0)