From 78ce6fd01a336262c3783e02075e9c2a56404ea1 Mon Sep 17 00:00:00 2001
From: phil <phil.dev@philome.mooo.com>
Date: Thu, 2 Jan 2025 03:30:18 +0100
Subject: [PATCH] Cosmetic

---
 src/oidc-test/main.py | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/src/oidc-test/main.py b/src/oidc-test/main.py
index 46e6594..e0f999c 100644
--- a/src/oidc-test/main.py
+++ b/src/oidc-test/main.py
@@ -174,9 +174,11 @@ async def current_user(request: Request, token: str | None = Depends(fastapi_oau
 async def login(request: Request, provider: str) -> RedirectResponse:
     redirect_uri = request.url_for("auth", provider=provider)
     try:
-        return await getattr(authlib_oauth, provider).authorize_redirect(
-            request, redirect_uri
-        )
+        provider_ = getattr(authlib_oauth, provider)
+    except AttributeError:
+        raise HTTPException(500, "")
+    try:
+        return await provider_.authorize_redirect(request, redirect_uri)
     except HTTPError:
         raise HTTPException(status.HTTP_401_UNAUTHORIZED, "Cannot reach provider")
 
@@ -184,18 +186,19 @@ async def login(request: Request, provider: str) -> RedirectResponse:
 @app.get("/auth/{provider}")
 async def auth(request: Request, provider: str) -> RedirectResponse:
     try:
-        token = await getattr(authlib_oauth, provider).authorize_access_token(request)
-
+        provider_ = getattr(authlib_oauth, provider)
+    except AttributeError:
+        raise HTTPException(500, "")
+    try:
+        token = await provider_.authorize_access_token(request)
     except OAuthError as error:
-        return HTMLResponse(f"<h1>{error.error}</h1>")
-
+        raise HTTPException(status_code=401, detail=error.error)
     user = token.get("userinfo")
-
     if user:
         request.session["user"] = dict(user)
-        return RedirectResponse(url=request.session.pop("next", "/"))
-
-    return RedirectResponse(url="/login")
+        return RedirectResponse(url="/")
+    else:
+        return RedirectResponse(url="/login")
 
 
 @app.get("/logout")