Merge branch 'feat/FE/refresh-user-session' into 'development'

[FEAT/FE] Refresh user session

See merge request mbugroup/lti-web-client!127
This commit is contained in:
Rivaldi A N S
2025-12-31 03:47:29 +00:00
2 changed files with 27 additions and 0 deletions
+12
View File
@@ -5,6 +5,7 @@ import useSWR from 'swr';
import { useAuth } from '@/services/hooks/useAuth';
import { httpClientFetcher, SWRHttpKey } from '@/services/http/client';
import { AuthApi } from '@/services/api/auth';
import { isResponseError, isResponseSuccess } from '@/lib/api-helper';
import { BaseApiResponse, GetMeResponse } from '@/types/api/api-general';
import { AxiosError } from 'axios';
@@ -55,6 +56,17 @@ const RequireAuth = ({ children }: RequireAuthProps) => {
setIsLoadingUser(isLoadingUserResponse);
}, [isLoadingUserResponse]);
useEffect(() => {
const interval = setInterval(
async () => {
await AuthApi.refresh();
},
13 * 60 * 1000
);
return () => clearInterval(interval);
}, []);
if (
(isLoadingUserResponse && !userResponse && !userErrorResponse) ||
(!userResponse && !userErrorResponse)
+15
View File
@@ -18,6 +18,21 @@ export class AuthApiService {
return undefined;
}
}
async refresh() {
try {
const refreshRes = await httpClient<BaseApiResponse>(`/sso/refresh`, {
method: 'POST',
});
return refreshRes;
} catch (error) {
if (axios.isAxiosError<BaseApiResponse>(error)) {
return error.response?.data;
}
return undefined;
}
}
}
export const AuthApi = new AuthApiService();