webiny-js icon indicating copy to clipboard operation
webiny-js copied to clipboard

Ability to customize response headers

Open taifok opened this issue 2 years ago • 2 comments

Is your feature request related to a problem? Please describe.

In /graphql and /cms api set "Access-Control-Allow-Headers" response header as "*" which is ignored in some old browsers (in my test case: iphone 6, safari < 13), and would cause error in browser and only a blank page is shown.

Related stackoverflow: https://stackoverflow.com/questions/13146892/cors-access-control-allow-headers-wildcard-being-ignored https://caniuse.com/mdn-http_headers_access-control-allow-headers_wildcard

Describe the feature's behavior.

Add params in fastify createHandler to pass headers to override the default headers.

Actually, setting the Access-Control-Allow-Headers as explicit values would be enough for my case.

Describe alternatives you've considered.

No response

taifok avatar Sep 15 '22 05:09 taifok

or exposing the reply to Context like request in fastify preParsing hook, then we can set the headers by reply.headers(...).

https://github.com/webiny/webiny-js/blob/0af7ac294c5843709e894af9ce8e1db153a4c880/packages/handler/src/fastify.ts#L243-L249

taifok avatar Sep 15 '22 05:09 taifok

Hi @taifok We could possibly add some lifecycle hooks (or something similar) so you can add your stuff when you need to. Exposing reply to the Context would not help because context plugins are initialized after the onRequest, where we are setting the default headers (see Fastify Lifecycle docs) - it would be too late for OPTIONS request.

brunozoric avatar Sep 15 '22 12:09 brunozoric