From 2fde68f5d87969a6d1ef1c52418b2a5b6a6f6c92 Mon Sep 17 00:00:00 2001 From: Yusron alamsyah Date: Wed, 25 Mar 2026 11:18:05 +0700 Subject: [PATCH] fix : get refresh token api --- services/api.ts | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/services/api.ts b/services/api.ts index bf894cc..4d46a81 100644 --- a/services/api.ts +++ b/services/api.ts @@ -3,10 +3,6 @@ import axios from 'axios' // Get runtime config for Nuxt 3 const config = useRuntimeConfig() -// Keycloak configuration for token refresh -const KEYCLOAK_TOKEN_URL = (config.public.keycloakUrl as string) || 'https://auth.rssa.top/realms/rssa/protocol/openid-connect/token' -const KEYCLOAK_CLIENT_ID = (config.public.keycloakClientId as string) || 'satu' -const KEYCLOAK_CLIENT_SECRET = (config.public.keycloakClientSecret as string) || 'ZhkK45MHB0a0eAZX5ecNTnlfnWlZXfBE' // Create axios instance for local API const api = axios.create({ @@ -43,25 +39,20 @@ const refreshAccessToken = async (): Promise => { throw new Error('No refresh token available') } - const params = new URLSearchParams() - params.append('grant_type', 'refresh_token') - params.append('client_id', KEYCLOAK_CLIENT_ID) - params.append('client_secret', KEYCLOAK_CLIENT_SECRET) - params.append('refresh_token', refreshToken) - - const response = await fetch(KEYCLOAK_TOKEN_URL, { + const response = await fetch(config.public.baseUrl+"/keycloak/refresh-token", { method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - }, - body: params.toString() + body: JSON.stringify({ + refresh_token: refreshToken, + }), }) - if (!response.ok) { - throw new Error('Token refresh failed') + const responseBody = await response.json() + + if (!response.ok || !responseBody?.success || !responseBody?.data) { + throw new Error(responseBody?.message || 'Token refresh failed') } - const data = await response.json() + const data = responseBody.data // Update tokens in localStorage if (data.access_token) {