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:
parent
6ebf2d4b45
commit
d830f33e23
@ -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')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user