ariansyahdedy commited on
Commit
904f598
·
1 Parent(s): 1bbee3f
Files changed (1) hide show
  1. app/routes/auth.py +11 -14
app/routes/auth.py CHANGED
@@ -36,30 +36,27 @@ async def login(request: Request):
36
  return RedirectResponse(authorization_url)
37
 
38
 
39
- @router.get("/auth/callback")
40
  async def auth_callback(request: Request):
41
  """Handle OAuth callback from Google with ?code= and ?state=."""
42
  state = request.session.get("state")
43
  if not state:
44
  return HTMLResponse("<h1>Session state not found. Please /login again.</h1>", status_code=400)
45
-
46
  flow = create_flow()
47
- # flow.fetch_token(authorization_response=str(request.url))
48
-
49
- flow.redirect_uri = GOOGLE_REDIRECT_URI # optional, for clarity
50
-
51
- # IMPORTANT: pass `redirect_uri` again here:
52
  flow.fetch_token(
53
- authorization_response=str(request.url),
54
- redirect_uri=GOOGLE_REDIRECT_URI
55
  )
56
-
57
- # Get the credentials object
58
  credentials = flow.credentials
59
  if not credentials or not credentials.valid:
60
  return HTMLResponse("<h1>Invalid credentials. Please /login again.</h1>", status_code=400)
61
-
62
- # Store credentials in session. In production, store securely (e.g. in DB, encrypted).
63
  request.session["credentials"] = {
64
  "token": credentials.token,
65
  "refresh_token": credentials.refresh_token,
@@ -68,5 +65,5 @@ async def auth_callback(request: Request):
68
  "client_secret": credentials.client_secret,
69
  "scopes": credentials.scopes
70
  }
71
-
72
  return RedirectResponse(url="/success", status_code=status.HTTP_302_FOUND)
 
36
  return RedirectResponse(authorization_url)
37
 
38
 
39
+ @router.get("/auth/callback")
40
  async def auth_callback(request: Request):
41
  """Handle OAuth callback from Google with ?code= and ?state=."""
42
  state = request.session.get("state")
43
  if not state:
44
  return HTMLResponse("<h1>Session state not found. Please /login again.</h1>", status_code=400)
45
+
46
  flow = create_flow()
47
+ flow.redirect_uri = GOOGLE_REDIRECT_URI # Set the redirect_uri here instead
48
+
49
+ # Remove the redirect_uri parameter from fetch_token
 
 
50
  flow.fetch_token(
51
+ authorization_response=str(request.url)
52
+ # Don't pass redirect_uri here, as it's already set on the flow object
53
  )
54
+
55
+ # Rest of your code remains the same
56
  credentials = flow.credentials
57
  if not credentials or not credentials.valid:
58
  return HTMLResponse("<h1>Invalid credentials. Please /login again.</h1>", status_code=400)
59
+
 
60
  request.session["credentials"] = {
61
  "token": credentials.token,
62
  "refresh_token": credentials.refresh_token,
 
65
  "client_secret": credentials.client_secret,
66
  "scopes": credentials.scopes
67
  }
68
+
69
  return RedirectResponse(url="/success", status_code=status.HTTP_302_FOUND)