Fix keystatic github redirect_uri by relying on x-forwarded-* headers (#10862)

Fix suggested by
https://github.com/Thinkmill/keystatic/issues/1022#issuecomment-2009029315.
This commit is contained in:
Baptiste Devessier
2025-03-13 18:18:48 +01:00
committed by GitHub
parent db48aa532c
commit ce42928143

View File

@ -1,6 +1,30 @@
import { makeRouteHandler } from '@keystatic/next/route-handler';
import config from '../../../../../keystatic.config';
export const { POST, GET } = makeRouteHandler({
config,
});
const { GET: _GET, POST: _POST } = makeRouteHandler({ config });
function rewriteUrl(request: Request) {
const forwardedHost = request.headers.get('x-forwarded-host');
const forwardedProto = request.headers.get('x-forwarded-proto');
const forwardedPort = request.headers.get('x-forwarded-port');
if (forwardedHost && forwardedProto) {
const url = new URL(request.url);
url.hostname = forwardedHost;
url.protocol = forwardedProto;
url.port = forwardedPort ?? '';
return new Request(url, request);
}
return request;
}
export function GET(request: Request) {
return _GET(rewriteUrl(request));
}
export function POST(request: Request) {
return _POST(rewriteUrl(request));
}