Files
simrsx-fe/server/api/v1/authentication/login.post.ts
T
Munawwirul Jamal 3eb9dde21d Dev cleaning (#106)
2025-10-08 00:03:36 +07:00

46 lines
1.1 KiB
TypeScript

import { getRequestURL, readBody, setCookie } from 'h3'
export default defineEventHandler(async (event) => {
const body = await readBody(event)
const url = getRequestURL(event)
const config = useRuntimeConfig()
const apiOrigin = config.public.API_ORIGIN
const cleanOrigin = apiOrigin.replace(/\/+$/, '')
const cleanPath = url.pathname.replace(/^\/api\//, '').replace(/^\/+/, '')
const externalUrl = `${cleanOrigin}/${cleanPath}${url.search}`
const resp = await fetch(externalUrl, {
method: 'POST',
body: JSON.stringify(body),
headers: {
'Content-Type': 'application/json',
},
})
console.log(resp)
if (resp.status === 200) {
const data = await resp.json()
if (data?.data?.accessToken) {
setCookie(event, 'authentication', data.data.accessToken, {
path: '/',
httpOnly: true,
sameSite: 'strict',
maxAge: 60 * 60 * 24,
})
delete data.data.accessToken
return data
}
}
return new Response(await resp.text(), {
status: resp.status,
headers: {
'Content-Type': resp.headers.get('content-type') || 'text/plain',
},
})
})