Add logout route and controller, remove JWT from user on logout
This commit is contained in:
1 parent
68164b9362
commit
9f4d23b1b4
4 files changed
+26
-1
No files matched your search
@@ -99,9 +99,10 @@ function NavBar() {
|
||||
// Clear auth state
|
||||
dispatch(clearAuthState());
|
||||
dispatch(clearUptimeMonitorState());
|
||||
// Make request to BE to remove JWT from user
|
||||
await axiosIntance.post(
|
||||
"/auth/logout",
|
||||
{},
|
||||
{ user: authState.user },
|
||||
{
|
||||
headers: {
|
||||
Authorization: `Bearer ${authState.authToken}`,
|
||||
|
||||
@@ -163,6 +163,26 @@ 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
|
||||
);
|
||||
userToLogout.authToken = null;
|
||||
await userToLogout.save();
|
||||
|
||||
return res
|
||||
.status(200)
|
||||
.json({ success: true, msg: successMessages.AUTH_LOGOUT_USER });
|
||||
} catch (error) {
|
||||
error.service = SERVICE_NAME;
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
const userEditController = async (req, res, next) => {
|
||||
try {
|
||||
await editUserParamValidation.validateAsync(req.params);
|
||||
@@ -530,6 +550,7 @@ const getAllUsersController = async (req, res) => {
|
||||
module.exports = {
|
||||
registerController,
|
||||
loginController,
|
||||
logoutController,
|
||||
userEditController,
|
||||
inviteController,
|
||||
inviteVerifyController,
|
||||
|
||||
@@ -9,6 +9,7 @@ const User = require("../models/user");
|
||||
const {
|
||||
registerController,
|
||||
loginController,
|
||||
logoutController,
|
||||
userEditController,
|
||||
recoveryRequestController,
|
||||
validateRecoveryTokenController,
|
||||
@@ -23,6 +24,7 @@ const {
|
||||
//Auth routes
|
||||
router.post("/register", upload.single("profileImage"), registerController);
|
||||
router.post("/login", loginController);
|
||||
router.post("/logout", logoutController);
|
||||
router.put(
|
||||
"/user/:userId",
|
||||
upload.single("profileImage"),
|
||||
|
||||
@@ -56,6 +56,7 @@ const successMessages = {
|
||||
// Auth Controller
|
||||
AUTH_CREATE_USER: "User created successfully",
|
||||
AUTH_LOGIN_USER: "User logged in successfully",
|
||||
AUTH_LOGOUT_USER: "User logged out successfully",
|
||||
AUTH_UPDATE_USER: "User updated successfully",
|
||||
AUTH_CREATE_RECOVERY_TOKEN: "Recovery token created successfully",
|
||||
AUTH_VERIFY_RECOVERY_TOKEN: "Recovery token verified successfully",
|
||||
|
||||
Reference in new issue
Block a user