diff --git a/id.saladeaula.digital/app/routes/authorize.py b/id.saladeaula.digital/app/routes/authorize.py index 8cf77fd..3e0a64d 100644 --- a/id.saladeaula.digital/app/routes/authorize.py +++ b/id.saladeaula.digital/app/routes/authorize.py @@ -53,8 +53,6 @@ def authorize(): grant_user=sub, grant=grant, ) - - logger.debug(response) except JoseError as err: logger.exception(err) raise BadRequestError(str(err)) diff --git a/id.saladeaula.digital/app/routes/revoke.py b/id.saladeaula.digital/app/routes/revoke.py index f3eb303..f06e0b2 100644 --- a/id.saladeaula.digital/app/routes/revoke.py +++ b/id.saladeaula.digital/app/routes/revoke.py @@ -9,9 +9,7 @@ router = Router() @router.post('/revoke') def revoke(): - response = server.create_endpoint_response( + return server.create_endpoint_response( RevocationEndpoint.ENDPOINT_NAME, router.current_event, ) - logger.debug(response) - return response diff --git a/id.saladeaula.digital/app/routes/token.py b/id.saladeaula.digital/app/routes/token.py index 191e050..9fffb93 100644 --- a/id.saladeaula.digital/app/routes/token.py +++ b/id.saladeaula.digital/app/routes/token.py @@ -10,5 +10,5 @@ router = Router() @router.post('/token') def issue_token(): response = server.create_token_response(router.current_event) - logger.debug(response) + logger.debug(getattr(response, 'body', None)) return response diff --git a/id.saladeaula.digital/client/app/routes/upstream.ts b/id.saladeaula.digital/client/app/routes/upstream.ts index 08d9365..2e591fb 100644 --- a/id.saladeaula.digital/client/app/routes/upstream.ts +++ b/id.saladeaula.digital/client/app/routes/upstream.ts @@ -7,14 +7,24 @@ async function proxy({ request, context }: Route.ActionArgs): Promise { - const url = new URL(request.url) - const issuerUrl = new URL(url.pathname, context.cloudflare.env.ISSUER_URL) - const response = await fetch(issuerUrl.toString(), { + const pathname = new URL(request.url).pathname + const url = new URL(pathname, context.cloudflare.env.ISSUER_URL) + const headers = new Headers(request.headers) + const response = await fetch(url.toString(), { method: request.method, - headers: request.headers + headers, + ...(['GET', 'HEAD'].includes(request.method) + ? {} + : { body: await request.text() }) }) - return new Response(await response.text(), { + const contentType = response.headers.get('content-type') || '' + const body = + contentType.includes('application/json') || contentType.startsWith('text/') + ? await response.text() + : await response.arrayBuffer() + + return new Response(body, { status: response.status, headers: response.headers })