Merge pull request #591 from bluewave-labs/fix/db-decoupling

Decoupled JWT from DB, resolves #590
This commit is contained in:
Alexander Holliday authored and GitHub committed 2024-08-11 10:02:28 -07:00
commit 5d1dcf1a3b
5 files changed
+16 -7

No files matched your search

+1 -1
View File
@@ -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}`,
+2 -5
View File
@@ -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();
+2
View File
@@ -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,
+10
View File
@@ -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,
};
+1 -1
View File
@@ -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,
});