diff --git a/apps/login/next-env-vars.d.ts b/apps/login/next-env-vars.d.ts index b575dc91f4..80c7c3a960 100644 --- a/apps/login/next-env-vars.d.ts +++ b/apps/login/next-env-vars.d.ts @@ -27,5 +27,11 @@ declare namespace NodeJS { * Optional: wheter a user must have verified email */ EMAIL_VERIFICATION: string; + + /** + * Optional: custom request headers to be added to every request + * Split by comma, key value pairs separated by colon + */ + CUSTOM_REQUEST_HEADERS: string; } } diff --git a/apps/login/src/lib/service.ts b/apps/login/src/lib/service.ts index 5ea9eec882..7f06284a66 100644 --- a/apps/login/src/lib/service.ts +++ b/apps/login/src/lib/service.ts @@ -44,6 +44,18 @@ export async function createServiceForHost( const transport = createServerTransport(token, { baseUrl: serviceUrl, + interceptors: !process.env.CUSTOM_REQUEST_HEADERS ? undefined :[ + (next) => { + return (req) => { + process.env.CUSTOM_REQUEST_HEADERS.split(",").forEach((header) => { + const kv = header.split(":") + req.header.set(kv[0], kv[1]); + }) + return next(req); + }; + }, + ] + , }); return createClientFor(service)(transport); diff --git a/turbo.json b/turbo.json index 279e45867b..06155fda5d 100644 --- a/turbo.json +++ b/turbo.json @@ -12,7 +12,8 @@ "ZITADEL_API_URL", "ZITADEL_SERVICE_USER_ID", "ZITADEL_SERVICE_USER_TOKEN", - "NEXT_PUBLIC_BASE_PATH" + "NEXT_PUBLIC_BASE_PATH", + "CUSTOM_REQUEST_HEADERS" ], "tasks": { "generate": {