You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI中Google Auth2回调后Cookie无法设置的问题排查

解决FastAPI Google认证后Cookie未设置的问题

以下是针对你遇到的问题的几个关键修复点:

1. 统一域名配置

你当前的回调URL用的是http://localhost:8000/v1/google/callback,但设置Cookie时指定的domain是127.0.0.1——这两个地址在浏览器中会被判定为不同域名,导致Cookie无法被正确保存。

修复方式:

  • 统一使用localhost或127.0.0.1作为所有地址的域名:
    • 将Google SSO的回调URL改为http://127.0.0.1:8000/v1/google/callback
    • 前端跳转地址和Cookie的domain参数也同步为同一域名
  • 或者直接移除domain参数,让浏览器自动匹配当前请求的域名:
    response.set_cookie(
        key=SESSION_COOKIE_NAME,
        value=access_token,
        httponly=True,
        path="/",
        # 移除domain参数,由浏览器自动适配当前服务域名
    )
    

2. 补充SameSite Cookie属性

跨域重定向场景下(Google认证后跳转回你的服务),浏览器的默认SameSite规则可能会拦截Cookie设置,需要显式配置该属性:

  • 本地HTTP开发环境可设置same_site="Lax":
    response.set_cookie(
        key=SESSION_COOKIE_NAME,
        value=access_token,
        httponly=True,
        path="/",
        same_site="Lax",
        secure=False  # 本地HTTP环境设为False,生产HTTPS环境必须改为True
    )
    
  • 若前端与后端存在跨域(端口/域名不同),需设置same_site="None",但该属性必须配合secure=True使用(生产HTTPS环境);部分浏览器要求localhost下也需HTTPS才能启用SameSite=None,此时建议优先采用Lax模式并确保域名统一。

3. 完善回调的Google认证校验

虽然你当前用测试token做验证,但实际场景中需要先完成Google的认证校验,确保回调请求是Google合法重定向回来的,避免隐性逻辑问题。示例补充完整处理逻辑:

@router.get("/callback", tags=['Google SSO'])
async def google_callback(request: Request, db: Session = Depends(get_db)):
    with GoogleSSO(
        GOOGLE_CLIENT_ID,
        GOOGLE_CLIENT_SECRET,
        "http://localhost:8000/v1/google/callback",
        allow_insecure_http=True
    ) as google_sso:
        # 验证并获取Google返回的用户信息
        user_info = await google_sso.verify_and_process(request)
        # 替换为实际的access_token生成逻辑
        access_token = 'test'
        response = RedirectResponse(url="http://localhost:3000/home", status_code=status.HTTP_302_FOUND)
        response.set_cookie(
            key=SESSION_COOKIE_NAME,
            value=access_token,
            httponly=True,
            path="/",
            same_site="Lax",
            secure=False
        )
        return response

内容的提问来源于stack exchange,提问作者Reddspark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:59:53