link-stack/apps/link/metamigo-add/api/proxy/[[...path]]/route.js

34 lines
1 KiB
JavaScript
Raw Normal View History

2023-02-13 12:41:30 +00:00
import { createProxyMiddleware } from "http-proxy-middleware";
2023-06-28 12:55:24 +00:00
const handler = createProxyMiddleware({
2023-02-13 12:41:30 +00:00
target:
process.env.NODE_ENV === "production"
? "http://metamigo-api:3001"
: "http://localhost:3001",
changeOrigin: true,
pathRewrite: { "^/api/v1": "/api" },
xfwd: true,
2023-03-15 12:17:43 +00:00
onProxyReq(proxyReq, req) {
2023-02-13 12:41:30 +00:00
const auth = proxyReq.getHeader("authorization");
if (auth) {
// pass along user provided authorization header
return;
}
// Else extract the session token from the cookie and pass
// as bearer token to the proxy target
2023-03-15 12:17:43 +00:00
// const token = req.cookies["next-auth.session-token"];
2023-02-13 12:41:30 +00:00
let token = req.cookies["__Secure-next-auth.session-token"];
if (!token) token = req.cookies["next-auth.session-token"];
if (token) {
proxyReq.setHeader("authorization", `Bearer ${token}`);
proxyReq.removeHeader("cookie");
} else {
console.error("no token found. proxied request to backend will fail.");
}
},
});
2023-06-28 12:55:24 +00:00
export { handler as GET, handler as POST, handler as PUT, handler as DELETE};