Fix use of server actions with proxied domains by using middleware (#2913)

This commit is contained in:
Samy Pessé
2025-03-04 10:00:08 +01:00
committed by GitHub
parent c66ef5dd10
commit 701eaad92a
3 changed files with 6 additions and 12 deletions
-6
View File
@@ -6,12 +6,6 @@
const nextConfig = {
experimental: {
useCache: true,
serverActions: {
// Allow all origins for server actions
// as we serve content on a lot of domains
// Server actions are secured by the middleware.
allowedOrigins: ['*', '*.*', '*.*.*', '*.*.*.*', '*.*.*.*.*'],
},
},
env: {
+6 -1
View File
@@ -77,6 +77,10 @@ async function serveSiteByURL(request: NextRequest, urlWithMode: URLWithMode) {
}
}
// Pass a x-forwarded-host and origin that are equal to ensure Next doesn't block server actions when proxied
requestHeaders.set('x-forwarded-host', request.nextUrl.host);
requestHeaders.set('origin', request.nextUrl.origin);
const route = [
'sites',
routeType,
@@ -87,7 +91,8 @@ async function serveSiteByURL(request: NextRequest, urlWithMode: URLWithMode) {
console.log(`rewriting to ${route}`);
const response = NextResponse.rewrite(new URL(`/${route}`, request.url), {
const rewrittenURL = new URL(`/${route}`, request.nextUrl.toString());
const response = NextResponse.rewrite(rewrittenURL, {
request: {
headers: requestHeaders,
},
-5
View File
@@ -225,11 +225,6 @@ const testCases: TestsCase[] = [
baseUrl: 'https://docs.raydium.io',
tests: [{ name: 'Home', url: '/' }],
},
{
name: 'docs.solv.finance',
baseUrl: 'https://docs.solv.finance',
tests: [{ name: 'Home', url: '/' }],
},
{
name: 'docs.fluentbit.io',
baseUrl: 'https://docs.fluentbit.io',