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:
committed by
GitHub
parent
db48aa532c
commit
ce42928143
@ -1,6 +1,30 @@
|
|||||||
import { makeRouteHandler } from '@keystatic/next/route-handler';
|
import { makeRouteHandler } from '@keystatic/next/route-handler';
|
||||||
import config from '../../../../../keystatic.config';
|
import config from '../../../../../keystatic.config';
|
||||||
|
|
||||||
export const { POST, GET } = makeRouteHandler({
|
const { GET: _GET, POST: _POST } = makeRouteHandler({ config });
|
||||||
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));
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user