ChananelAzenkot / Final-Project-Full-Stack-Developer-App

The Final Project - integrates React for front-end and Node.js with MongoDB for back-end. Utilizes Bcrypt, Joi, JWT, Config, Morgan, Cors, Chalk, Mongoose for secure, scalable web apps. Demonstrates full stack proficiency, epitomizing modern development standards.
0 stars 0 forks source link

The logout of the backhand is working but the front end it's not make actually logout #2

Open ChananelAzenkot opened 6 months ago

ChananelAzenkot commented 6 months ago

const logout = () => { setLoader(true);

fetch(`http://localhost:4000/logout`, {
  credentials: "include",
}).then(() => {
  setUser();
  setUserRoleType(RoleTypes.none);
  setLoader(false);
  localStorage.removeItem("token");
  navigate("./login");
});

handleCloseUserMenu();

};

ChananelAzenkot commented 6 months ago

I fix the issue, but the logout automatically after one hour is not disconnecting just if you refresh the page included the code:


export const useAuth = (setUserRoleType, setLoader) => {
  useEffect(() => {
    const token = localStorage.getItem('token');
    if (!token) {
      setUserRoleType(RoleTypes.none);
      setLoader(false);
      return;
    }

    const user = jwtDecode(token);

    const currentTime = Date.now().valueOf() / 1000;
    if (user.exp < currentTime) {
      localStorage.removeItem('token');
      setUserRoleType(RoleTypes.none);
      window.location.href = '/login';
      setLoader(false);
      return;
    }

    let role = RoleTypes.user;

    if (user.isAdmin) {
      role = RoleTypes.isAdmin;
    } else if (user.IsBusiness) {
      role = RoleTypes.IsBusiness;
    }
    setUserRoleType(role);
    setLoader(false);
  }, []);
};