mod-portal-v2/server/api/auth/logout.post.ts

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 }
}
})