Merge pull request #591 from bluewave-labs/fix/db-decoupling
Decoupled JWT from DB, resolves #590
This commit is contained in:
5 files changed
+16
-7
No files matched your search
@@ -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}`,
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
@@ -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,
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user