47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
import { NextApiRequest, NextApiResponse } from 'next';
|
|
import { createProxyMiddleware } from 'http-proxy-middleware';
|
|
import { getToken } from "next-auth/jwt";
|
|
|
|
const withAuthInfo =
|
|
(handler) => async (req: NextApiRequest, res: NextApiResponse) => {
|
|
const session = await getToken({
|
|
req,
|
|
secret: process.env.NEXTAUTH_SECRET,
|
|
});
|
|
|
|
if (!session) {
|
|
return res.redirect("/login");
|
|
}
|
|
|
|
try {
|
|
const res2 = await fetch(`http://127.0.0.1:8001`);
|
|
console.log({ res2 })
|
|
} catch (e) {
|
|
console.log({ e })
|
|
}
|
|
|
|
console.log({ zammad: process.env.ZAMMAD_URL })
|
|
req.headers['X-Forwarded-User'] = session.email.toLowerCase();
|
|
req.headers['host'] = 'zammad.example.com';
|
|
|
|
console.log({ headers: req.headers })
|
|
|
|
return handler(req, res);
|
|
};
|
|
|
|
const proxy = createProxyMiddleware({
|
|
target: process.env.ZAMMAD_URL,
|
|
changeOrigin: true,
|
|
xfwd: true,
|
|
ws: true,
|
|
pathRewrite: { "^/zammad": "" },
|
|
});
|
|
|
|
export default withAuthInfo(proxy);
|
|
|
|
export const config = {
|
|
api: {
|
|
bodyParser: false,
|
|
externalResolver: true,
|
|
},
|
|
};
|