diff --git a/backend/routes/auth/login.ts b/backend/routes/auth/login.ts index da4c306..fae08c4 100644 --- a/backend/routes/auth/login.ts +++ b/backend/routes/auth/login.ts @@ -37,7 +37,12 @@ router.post("/", async (req, res) => { user.updatedAt = new Date(); await user.save(); - const token = generateAuthToken(user); + const token = generateAuthToken({ + _id: user._id, + username: user.username, + key: process.env.JWT_SECRET_KEY as string + }); + res.status(200).json({ msg: `User ${user.username} logged in successfully!`, token: token diff --git a/backend/utils/generateToken.js b/backend/utils/generateToken.js deleted file mode 100644 index 2690b5e..0000000 --- a/backend/utils/generateToken.js +++ /dev/null @@ -1,19 +0,0 @@ -import jwt from "jsonwebtoken"; -import dotenv from "dotenv"; - -dotenv.config(); - -const generateAuthToken = (user) => { - const jwtSecretKey = process.env.JWT_SECRET_KEY; - const token = jwt.sign( - { - _id: user._id, - username: user.username - }, - jwtSecretKey - ); - - return token; -}; - -export default generateAuthToken; diff --git a/backend/utils/generateToken.ts b/backend/utils/generateToken.ts new file mode 100644 index 0000000..43b4074 --- /dev/null +++ b/backend/utils/generateToken.ts @@ -0,0 +1,29 @@ +import jwt, { Secret } from "jsonwebtoken"; +import dotenv from "dotenv"; +import User from "../models/user.js"; + +dotenv.config(); + +export interface UserTokenGenerator { + _id: string; + username: string; + key: Secret; +} + +const generateAuthToken = (user: UserTokenGenerator) => { + if (!process.env.JWT_SECRET_KEY) { + throw new Error("JWT_SECRET_KEY is not defined."); + } + const jwtSecretKey = process.env.JWT_SECRET_KEY as Secret; + const token = jwt.sign( + { + _id: user._id, + username: user.username + }, + jwtSecretKey + ); + + return token; +}; + +export default generateAuthToken; diff --git a/backend/utils/setHeaders.js b/backend/utils/setHeaders.ts similarity index 100% rename from backend/utils/setHeaders.js rename to backend/utils/setHeaders.ts