From 85baf6a7247d044760ac3941c2817ab263865e30 Mon Sep 17 00:00:00 2001 From: Lightemerald Date: Thu, 7 Dec 2023 23:46:26 +0100 Subject: [PATCH] Fixes to tokens --- api/bun.lockb | Bin 87310 -> 82488 bytes api/modules/token.js | 21 ++++----------------- api/package.json | 1 - api/routes/users.js | 8 ++------ 4 files changed, 6 insertions(+), 24 deletions(-) diff --git a/api/bun.lockb b/api/bun.lockb index e4990453ba8d4d82542eb0424b09c4665b0cea98..8f919077bd32901b66989a1fc14fa6fb54074f03 100755 GIT binary patch delta 12021 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 delta 14856 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 { - const token = jwt.sign({ userId: userId, password: password }, process.env.JWT_SECRET, { expiresIn: '7d' }); - await db.put(token); - return token; + return token = jwt.sign({ userId: userId, password: password }, process.env.JWT_SECRET, { expiresIn: '7d' }); }; // Middleware to verify the JWT and set req.userId @@ -32,16 +25,10 @@ const verifyToken = async (req, res, next) => { if (!passwordMatch) return await respondWithStatus(res, 401, 'Token is invalid'); const now = Date.now().valueOf() / 1000; - if (decoded.exp - now < 36000) { - const newToken = generateToken(req.userId, decoded.password); - res.cookie('token', newToken, { - expires: new Date(Date.now() + 14 * 24 * 60 * 60 * 1000), - httpOnly: true, - secure: true, - sameSite: 'strict', - }); - res.set('Authorization', newToken); + if (decoded.exp - now <= 0) { + return await respondWithStatus(res, 401, 'Token is invalid'); } + req.username = rows[0].username; next(); } catch (error) { diff --git a/api/package.json b/api/package.json index 33650c9..cba3d8b 100644 --- a/api/package.json +++ b/api/package.json @@ -15,7 +15,6 @@ "express-rate-limit": "^7.1.5", "express-slow-down": "^2.0.1", "jsonwebtoken": "^9.0.2", - "level": "^8.0.0", "morgan": "^1.10.0", "mysql2": "^3.6.5", "pino": "^8.16.2" diff --git a/api/routes/users.js b/api/routes/users.js index a295a7e..dbdf68e 100644 --- a/api/routes/users.js +++ b/api/routes/users.js @@ -11,16 +11,14 @@ router.post('/register', requestLimiter, async (req, res) => { if ([ username, password ].every(Boolean)) { try { const [existingUsername] = await pool.execute('SELECT * FROM users WHERE username = ? LIMIT 1', [username]); - if (existingUsername.length) { - return await respondWithStatus(res, 400, 'Username is already taken'); - } + if (existingUsername.length) return await respondWithStatus(res, 400, 'Username is already taken'); const hashedPassword = await Bun.password.hash(password); const [result] = await pool.execute('INSERT INTO users (username, password) VALUES (?, ?)', [ username, hashedPassword ]); if (result.affectedRows === 0) return await respondWithStatus(res, 500, 'Error storing user'); const user = await pool.execute('SELECT * FROM users WHERE username = ? LIMIT 1', [ username ]); const token = await generateToken(user[0].id, password); - return await respondWithStatusJSON(res, 200, { message: 'Successfully registered', token }); + return await respondWithStatusJSON(res, 200, { message: 'Successfully registered', token, username: req.username }); } catch (error) { console.error(error); @@ -51,8 +49,6 @@ router.post('/login', requestLimiter, async (req, res) => { user: { id: user.id, username: user.username, - email: user.email, - name: user.name, }, }); }