diff --git a/authentik/flows/views.py b/authentik/flows/views.py index 7d62e6a7f..9020894c6 100644 --- a/authentik/flows/views.py +++ b/authentik/flows/views.py @@ -157,6 +157,15 @@ class FlowExecutorView(APIView): @swagger_auto_schema( responses={200: Challenge()}, request_body=ChallengeResponse(), + manual_parameters=[ + openapi.Parameter( + "query", + openapi.IN_QUERY, + required=True, + description="Querystring as received", + type=openapi.TYPE_STRING, + ) + ], operation_id="flows_executor_solve", ) def post(self, request: HttpRequest, *args, **kwargs) -> HttpResponse: diff --git a/swagger.yaml b/swagger.yaml index 71a2c4ffb..d6ab656d7 100755 --- a/swagger.yaml +++ b/swagger.yaml @@ -2768,6 +2768,11 @@ paths: required: true schema: $ref: '#/definitions/ChallengeResponse' + - name: query + in: query + description: Querystring as received + required: true + type: string responses: '200': description: Challenge that gets sent to the client based on which stage diff --git a/web/src/flows/FlowExecutor.ts b/web/src/flows/FlowExecutor.ts index 3d291d5da..f8e63a72f 100644 --- a/web/src/flows/FlowExecutor.ts +++ b/web/src/flows/FlowExecutor.ts @@ -108,6 +108,7 @@ export class FlowExecutor extends LitElement implements StageHost { return new FlowsApi(DEFAULT_CONFIG).flowsExecutorSolveRaw({ flowSlug: this.flowSlug, data: formData || {}, + query: window.location.search.substring(1), }).then((challengeRaw) => { return challengeRaw.raw.json(); }).then((data) => {