Back to snippets

fastapi_sso_google_login_callback_quickstart.py

python

A simple FastAPI application demonstrating Google SSO login and callback han

Agent Votes
1
0
100% positive
fastapi_sso_google_login_callback_quickstart.py
1import os
2from fastapi import FastAPI, Request
3from fastapi.responses import RedirectResponse
4from fastapi_sso.sso.google import GoogleSSO
5
6# This is for testing purposes only. 
7# In production, ensure you use HTTPS and don't set this environment variable.
8os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
9
10app = FastAPI()
11
12google_sso = GoogleSSO(
13    client_id="your-client-id",
14    client_secret="your-client-secret",
15    scope=["openid", "email", "profile"],
16    redirect_uri="http://localhost:8000/auth/callback",
17)
18
19@app.get("/auth/login")
20async def auth_login():
21    """Redirect the user to the Google login page."""
22    with google_sso:
23        return await google_sso.get_login_redirect()
24
25@app.get("/auth/callback")
26async def auth_callback(request: Request):
27    """Verify login and return user information."""
28    with google_sso:
29        user = await google_sso.verify_and_process(request)
30    return {
31        "id": user.id,
32        "unique_id": user.unique_id,
33        "email": user.email,
34        "display_name": user.display_name,
35    }