From 571042f50bd2be517cd40fa19e657eabccd6b636 Mon Sep 17 00:00:00 2001
From: Jacopo Gasparetto <jacopo.gasparetto@cnaf.infn.it>
Date: Mon, 17 Apr 2023 09:34:08 +0200
Subject: [PATCH] Add OAuth2 logout function

---
 frontend/src/services/OAuth2/OAuthContext.ts   | 1 +
 frontend/src/services/OAuth2/OAuthProvider.tsx | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/frontend/src/services/OAuth2/OAuthContext.ts b/frontend/src/services/OAuth2/OAuthContext.ts
index 10c4d38..32d272c 100644
--- a/frontend/src/services/OAuth2/OAuthContext.ts
+++ b/frontend/src/services/OAuth2/OAuthContext.ts
@@ -3,6 +3,7 @@ import { createContext } from "react";
 
 export interface OAuthContextProps extends IOAuthState {
   signinPopup(): void;
+  logout(): void;
 }
 
 export const OAuthContext = createContext<OAuthContextProps | undefined>(undefined);
diff --git a/frontend/src/services/OAuth2/OAuthProvider.tsx b/frontend/src/services/OAuth2/OAuthProvider.tsx
index feb36a1..21af44b 100644
--- a/frontend/src/services/OAuth2/OAuthProvider.tsx
+++ b/frontend/src/services/OAuth2/OAuthProvider.tsx
@@ -168,10 +168,15 @@ export const OAuthProvider = (props: OAuthProviderProps): JSX.Element => {
 
   }, [props]);
 
+  const logout = useCallback(() => {
+    setOAuthState(initialOAuthState);
+  }, []);
+
   return (
     <OAuthContext.Provider
       value={{
         signinPopup: signinPopup,
+        logout: logout,
         isAuthenticated: oAuthState.isAuthenticated,
         isLoading: oAuthState.isLoading,
         error: oAuthState.error,
-- 
GitLab