26 lines
No EOL
706 B
TypeScript
26 lines
No EOL
706 B
TypeScript
export default defineEventHandler(async (event) => {
|
|
const config = useRuntimeConfig(event)
|
|
const body = await readBody(event)
|
|
|
|
const logoutUrl = `${config.public.keycloakUrl}/realms/${config.public.keycloakRealm}/protocol/openid-connect/logout`
|
|
|
|
const params = new URLSearchParams({
|
|
client_id: config.public.keycloakClientId,
|
|
client_secret: config.keycloakClientSecret,
|
|
refresh_token: body?.refreshToken || ''
|
|
})
|
|
|
|
try {
|
|
await $fetch(logoutUrl, {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|
},
|
|
body: params.toString()
|
|
})
|
|
|
|
return { success: true }
|
|
} catch (error) {
|
|
return { success: false }
|
|
}
|
|
}) |