diff --git a/client/cms/src/lib/token.ts b/client/cms/src/lib/token.ts index 2ead7a1..cb96969 100644 --- a/client/cms/src/lib/token.ts +++ b/client/cms/src/lib/token.ts @@ -30,9 +30,16 @@ export function clearTokens() { } export async function doSetTokenByCode(code: string) { - const { data } = await axiosClient.post<{ access_token: string; refresh_token: string }>('/auth/token', { code }, { headers: HEADER_API_VERSION }); - setToken(data.access_token); - setRefreshToken(data.refresh_token); + return new Promise((resolve, reject) => { + axiosClient.post<{ access_token: string; refresh_token: string }>('/auth/token', { code }, { headers: HEADER_API_VERSION }).then(({ data }) => { + console.log(data); + setToken(data.access_token); + setRefreshToken(data.refresh_token); + resolve(); + }).catch((error) => { + reject(error); + }); + }); } export async function doRefreshToken() { diff --git a/client/cms/src/routes/token.tsx b/client/cms/src/routes/token.tsx index fbc0278..78f8bc7 100644 --- a/client/cms/src/routes/token.tsx +++ b/client/cms/src/routes/token.tsx @@ -1,5 +1,5 @@ import { createFileRoute, useNavigate } from '@tanstack/react-router'; -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import z from 'zod'; import { doSetTokenByCode } from '@/lib/token'; @@ -16,10 +16,15 @@ function RouteComponent() { const { code } = Route.useSearch(); const [status, setStatus] = useState('Loading...'); const navigate = useNavigate(); - doSetTokenByCode(code).then(() => { - void navigate({ to: '/' }); - }).catch((_) => { - setStatus('Error getting token'); - }); + + useEffect(() => { + doSetTokenByCode(code).then(() => { + void navigate({ to: '/' }); + }).catch((_) => { + setStatus('Error getting token'); + }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + return
{status}
; }