diff --git a/Client/src/Components/NavBar/index.jsx b/Client/src/Components/NavBar/index.jsx index 57699c97c..95123d975 100644 --- a/Client/src/Components/NavBar/index.jsx +++ b/Client/src/Components/NavBar/index.jsx @@ -102,7 +102,7 @@ function NavBar() { // Make request to BE to remove JWT from user await axiosIntance.post( "/auth/logout", - { user: authState.user }, + { email: authState.user.email }, { headers: { Authorization: `Bearer ${authState.authToken}`, diff --git a/Server/controllers/authController.js b/Server/controllers/authController.js index 65c925561..0f89e3371 100644 --- a/Server/controllers/authController.js +++ b/Server/controllers/authController.js @@ -166,11 +166,8 @@ const loginController = async (req, res, next) => { const logoutController = async (req, res, next) => { try { // Get user - const { user } = req.body; - const userToLogout = await req.db.getUserByEmail( - { body: { email: user.email } }, - res - ); + const { email } = req.body; + const userToLogout = await req.db.getUserByEmail({ body: { email } }, res); userToLogout.authToken = null; await userToLogout.save(); diff --git a/Server/db/mongo/MongoDB.js b/Server/db/mongo/MongoDB.js index ed1b9e4b1..fa84cd98a 100644 --- a/Server/db/mongo/MongoDB.js +++ b/Server/db/mongo/MongoDB.js @@ -37,6 +37,7 @@ const { updateUser, deleteUser, getAllUsers, + logoutUser, } = require("./modules/userModule"); //**************************************** @@ -133,6 +134,7 @@ module.exports = { updateUser, deleteUser, getAllUsers, + logoutUser, requestInviteToken, getInviteToken, requestRecoveryToken, diff --git a/Server/db/mongo/modules/userModule.js b/Server/db/mongo/modules/userModule.js index 144295b6d..d626bcb9a 100644 --- a/Server/db/mongo/modules/userModule.js +++ b/Server/db/mongo/modules/userModule.js @@ -150,10 +150,20 @@ const getAllUsers = async (req, res) => { } }; +const logoutUser = async (userId) => { + try { + await UserModel.updateOne({ _id: userId }, { $unset: { authToken: null } }); + return true; + } catch (error) { + throw error; + } +}; + module.exports = { insertUser, getUserByEmail, updateUser, deleteUser, getAllUsers, + logoutUser, }; diff --git a/Server/middleware/verifyJWT.js b/Server/middleware/verifyJWT.js index e6171bda3..cfbf4b46c 100644 --- a/Server/middleware/verifyJWT.js +++ b/Server/middleware/verifyJWT.js @@ -38,7 +38,7 @@ const verifyJWT = (req, res, next) => { if (err) { try { const userId = jwt.decode(parsedToken)._id; - await User.updateOne({ _id: userId }, { $unset: { authToken: null } }); + await req.db.logoutUser(userId); logger.error(errorMessages.INVALID_AUTH_TOKEN, { service: SERVICE_NAME, });