fix: Add Request parameter to Google OAuth endpoints

Pass the FastAPI Request object to authorize_redirect() and authorize_access_token() methods as required by Authlib's Starlette integration
This commit is contained in:
dvirlabs 2026-02-20 16:53:34 +02:00
parent 6ebf2d4b45
commit d830f33e23

View File

@ -1,4 +1,4 @@
from fastapi import FastAPI, HTTPException, Header, Depends
from fastapi import FastAPI, HTTPException, Header, Depends, Request
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import RedirectResponse
from pydantic import BaseModel, Field, ConfigDict
@ -227,17 +227,17 @@ def logout(authorization: Optional[str] = Header(None), db: Session = Depends(ge
return {"message": "Logged out successfully"}
@app.get("/auth/google")
async def google_login():
async def google_login(request: Request):
"""Initiate Google OAuth login"""
redirect_uri = os.getenv('GOOGLE_REDIRECT_URI', 'http://localhost:8000/auth/google/callback')
return await oauth.google.authorize_redirect(redirect_uri)
return await oauth.google.authorize_redirect(request, redirect_uri)
@app.get("/auth/google/callback")
async def google_callback(code: str, db: Session = Depends(get_db)):
async def google_callback(request: Request, db: Session = Depends(get_db)):
"""Handle Google OAuth callback"""
try:
# Get access token from Google
token = await oauth.google.authorize_access_token()
token = await oauth.google.authorize_access_token(request)
# Get user info from Google
user_info = token.get('userinfo')