From 7436f19f8de889060c3e73e7eebc4cf7cbcd0973 Mon Sep 17 00:00:00 2001
From: Mart van Santen <mart@greenhost.nl>
Date: Wed, 22 Feb 2023 14:44:41 +0800
Subject: [PATCH] Try to fix consent

---
 backend/web/login/login.py | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/backend/web/login/login.py b/backend/web/login/login.py
index ffe67701..3fa87921 100644
--- a/backend/web/login/login.py
+++ b/backend/web/login/login.py
@@ -375,14 +375,24 @@ def consent():
     current_app.logger.info(f"{kratos_id} was granted access to {client_id}")
 
     # False positive: pylint: disable=no-member
-    return redirect(
-        consent_request.accept(
-            grant_scope=consent_request.requested_scope,
-            grant_access_token_audience=consent_request.requested_access_token_audience,
-            session=claims,
-        )
+    try:
+        redirectUrl = hydra_admin_api.accept_consent_request(
+            challenge,
+            accept_consent_request=AcceptConsentRequest(
+                grant_scope=consent_request.requested_scope,
+                grant_access_token_audience=consent_request.requested_access_token_audience,
+                session=ConsentRequestSession(**claims),
+            )
+        ).redirect_to
     )
-
+    except:
+        # If an unexpected error occurs, logout, hopefully that wipes the
+        # relevant cookies
+        current_app.logger.error('Fatal processing consent, redirect to logout:' + str(e))
+        return redirect("logout")
+    current_app.logger.info(f"Redirect to: {redirectUrl}")
+
+    return redirect(redirectUrl)
 
 @web.route("/status", methods=["GET", "POST"])
 def status():
-- 
GitLab