Skip to content

Commit

Permalink
UPDATE: updating JWT implementation.
Browse files Browse the repository at this point in the history
  • Loading branch information
AhmedMaherElSaeidi committed Jul 27, 2024
1 parent a18f5df commit 20f286f
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 25 deletions.
12 changes: 2 additions & 10 deletions routes/auth.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,8 @@ router.post("/login", async (req, res) => {
if (!validPassword)
return res.status(404).json({ message: "Invalid password." });

const token = JWT.sign({
id: user.id,
name: `${user.fname} ${user.lname}`,
username: user.username,
telephone: user.telephone,
image: user.image,
gender: user.gender,
admin: user.role === "admin" ? true : false,
});
res.status(201).json({ data: token });
const jwt = new JWT();
res.status(201).json({ data: jwt.getAuthToken(user) });
} catch (error) {
res.status(400).json({ message: error });
}
Expand Down
12 changes: 2 additions & 10 deletions routes/users.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,17 +71,9 @@ router.post("/", async (req, res) => {

// Saving user
user = await User.create(user);
const token = JWT.sign({
id: user.id,
name: `${user.fname} ${user.lname}`,
username: user.username,
telephone: user.telephone,
image: user.image,
gender: user.gender,
admin: user.role === "admin" ? true : false,
});
const jwt = new JWT();

res.header("x-auth-token", token);
res.header("x-auth-token", jwt.getAuthToken(user));
res.status(201).json({ data: user });
} catch (error) {
res.status(400).json({ message: error });
Expand Down
20 changes: 15 additions & 5 deletions services/JWT.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,24 @@
const jwt = require("jsonwebtoken");

class JWT {
static _key = "5BD24DCB1483578373DD86A7AD35F";
static _ms = "3600s";
#key = "5BD24DCB1483578373DD86A7AD35F";
#ms = "3600s";

static sign(object) {
return jwt.sign(object, this._key, { expiresIn: this._ms });
getAuthToken(user) {
const payload = {
id: user.id,
name: `${user.fname} ${user.lname}`,
username: user.username,
telephone: user.telephone,
image: user.image,
gender: user.gender,
admin: user.role === "admin" ? true : false,
};

return jwt.sign(payload, this.#key, { expiresIn: this.#ms });
}

static verify(token) {}
verifyAuthToken(token) {}
}

module.exports = JWT;

0 comments on commit 20f286f

Please sign in to comment.