diff --git a/.env b/.env
index 9f61bae..8db0aa6 100644
--- a/.env
+++ b/.env
@@ -19,4 +19,5 @@ REACT_APP_SITE_CONTACT_US=https://www.float.sg/contact
REACT_APP_SITE_TERMS=https://www.float.sg/terms
REACT_APP_SITE_ABOUT_US=https://www.float.sg/about
-REACT_APP_LOGIN_ERROR_TIMEOUT=5000
\ No newline at end of file
+REACT_APP_LOGIN_ERROR_TIMEOUT=5000
+REACT_APP_SESSION_TIMEOUT=300000
diff --git a/src/_metronic/layout/components/sidebar/SidebarLogo.tsx b/src/_metronic/layout/components/sidebar/SidebarLogo.tsx
index c4194fe..b608515 100644
--- a/src/_metronic/layout/components/sidebar/SidebarLogo.tsx
+++ b/src/_metronic/layout/components/sidebar/SidebarLogo.tsx
@@ -22,19 +22,19 @@ const SidebarLogo = () => {
{config.layoutType === 'dark-sidebar' ? (
) : (
<>
>
diff --git a/src/app/modules/auth/core/Auth.tsx b/src/app/modules/auth/core/Auth.tsx
index 77a7ef2..33a2b03 100644
--- a/src/app/modules/auth/core/Auth.tsx
+++ b/src/app/modules/auth/core/Auth.tsx
@@ -8,6 +8,7 @@ import {
Dispatch,
SetStateAction,
} from 'react'
+import {useLocation} from 'react-router-dom'
import {LayoutSplashScreen} from '../../../../_res/layout/core'
import {AuthModel, UserModel} from './_models'
import * as authHelper from './AuthHelpers'
@@ -61,11 +62,17 @@ const AuthProvider: FC = ({children}) => {
}
const AuthInit: FC = ({children}) => {
+ const pathname = useLocation().pathname
const {auth, logout, setCurrentUser} = useAuth()
const didRequest = useRef(false)
const [showSplashScreen, setShowSplashScreen] = useState(true)
// We should request user by authToken (IN OUR EXAMPLE IT'S API_TOKEN) before rendering the application
useEffect(() => {
+ // function to expire session after 5 mins
+ let logoutSession = setTimeout(()=>{ //expire session after 5 mins
+ logout()
+ }, Number(process.env.REACT_APP_SESSION_TIMEOUT))
+
const requestUser = async (apiToken: string) => {
try {
if (!didRequest.current) {
@@ -96,7 +103,11 @@ const AuthInit: FC = ({children}) => {
setShowSplashScreen(false)
}
// eslint-disable-next-line
- }, [])
+
+ return ()=>{ // clears session timeout side effect
+ clearInterval(logoutSession)
+ }
+ }, [pathname])
return showSplashScreen ? : <>{children}>
}