34 lines
976 B
TypeScript
34 lines
976 B
TypeScript
import type {H3Event} from "h3";
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const user = process.env.NUXT_PRIVATE_SUPERUSER_USER;
|
|
const password = process.env.NUXT_PRIVATE_SUPERUSER_PASSWORD;
|
|
if (user == null || password == null)
|
|
{
|
|
console.error("Username or password is null.");
|
|
throw Error();
|
|
}
|
|
|
|
const credentials: string = "Basic " + Buffer.from(user + ':' + password).toString('base64');
|
|
|
|
event.headers.delete("host");
|
|
event.headers.delete("origin");
|
|
event.headers.set("authorization", credentials);
|
|
|
|
return sendProxy(event, process.env.NUXT_PUBLIC_BASE_URL + event.path, {
|
|
fetchOptions: {
|
|
method: event.method,
|
|
headers: event.headers,
|
|
body: await readBody(event)
|
|
}
|
|
});
|
|
})
|
|
|
|
async function readBody(event: H3Event)
|
|
{
|
|
if (["POST", "PUT", "PATCH"].includes(event.method))
|
|
{
|
|
return await readRawBody(event);
|
|
}
|
|
return undefined;
|
|
} |