Added the logout function to the UserContext.jsx

This commit is contained in:
Mathias Wagner 2023-09-10 10:37:08 +02:00
parent c91c30a15a
commit 8d6dd45429
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

View File

@ -1,7 +1,7 @@
import {createContext, useEffect, useState} from "react"; import {createContext, useEffect, useState} from "react";
import Login from "@/states/Login"; import Login from "@/states/Login";
import Loading from "@/states/Loading"; import Loading from "@/states/Loading";
import {sessionRequest} from "@/common/utils/RequestUtil.js"; import {postRequest, sessionRequest} from "@/common/utils/RequestUtil.js";
import Verify from "@/states/Verify"; import Verify from "@/states/Verify";
export const UserContext = createContext({}); export const UserContext = createContext({});
@ -26,6 +26,13 @@ export const UserProvider = (props) => {
} }
} }
const logout = async () => {
await postRequest("/auth/logout", {token: sessionToken});
localStorage.removeItem("sessionToken");
setSessionToken(null);
setUser({loggedIn: false});
}
useEffect(() => { useEffect(() => {
setTimeout(updateUser, 1000); setTimeout(updateUser, 1000);
}, []); }, []);
@ -41,7 +48,7 @@ export const UserProvider = (props) => {
if (location.pathname.startsWith("/verify")) return <Verify />; if (location.pathname.startsWith("/verify")) return <Verify />;
return ( return (
<UserContext.Provider value={{user, updateUser, updateSessionToken}}> <UserContext.Provider value={{user, updateUser, logout, updateSessionToken}}>
{!loading && !user.loggedIn && <Login />} {!loading && !user.loggedIn && <Login />}
{!loading && user.loggedIn && props.children} {!loading && user.loggedIn && props.children}
</UserContext.Provider> </UserContext.Provider>