Files
fastapi-best-architecture/backend/plugin/oauth2
Wu Clan bc484bf414 Merge branch 'master' into pre-tenant
# Conflicts:
#	backend/common/context.py
2026-08-14 17:49:39 +08:00
..
2026-08-14 17:49:39 +08:00
2026-06-01 02:08:50 +08:00
2026-06-01 02:08:50 +08:00
2026-01-07 12:21:21 +08:00
2026-03-15 02:48:53 +08:00
2026-03-15 02:48:53 +08:00

OAuth2

OAuth 2.0 第三方登录插件,支持 GitHub、Google 等社交平台登录

  • 支持 GitHub、Google 第三方登录
  • 支持第三方账号绑定与解绑
  • 支持登录回跳和绑定回跳配置

插件类型

  • 应用级插件

配置说明

backend/.env 中添加以下内容:

# [ Plugin ] oauth2
OAUTH2_GITHUB_CLIENT_ID='test'
OAUTH2_GITHUB_CLIENT_SECRET='test'
OAUTH2_GOOGLE_CLIENT_ID='test'
OAUTH2_GOOGLE_CLIENT_SECRET='test'

插件目录下 plugin.toml[settings] 中包含以下内容:

[settings]
OAUTH2_FRONTEND_BINDING_REDIRECT_URI = 'http://localhost:5173/profile'
OAUTH2_FRONTEND_LOGIN_REDIRECT_URI = 'http://localhost:5173/oauth2/callback'
OAUTH2_GITHUB_REDIRECT_URI = 'http://127.0.0.1:8000/api/v1/oauth2/github/callback'
OAUTH2_GOOGLE_REDIRECT_URI = 'http://127.0.0.1:8000/api/v1/oauth2/google/callback'
OAUTH2_STATE_EXPIRE_SECONDS = 180
OAUTH2_STATE_REDIS_PREFIX = 'fba:oauth2:state'

backend/core/conf.py 中添加以下内容:

##################################################
# [ Plugin ] oauth2
##################################################
# .env
OAUTH2_GITHUB_CLIENT_ID: str
OAUTH2_GITHUB_CLIENT_SECRET: str
OAUTH2_GOOGLE_CLIENT_ID: str
OAUTH2_GOOGLE_CLIENT_SECRET: str

# 基础配置(in plugin.toml
OAUTH2_STATE_REDIS_PREFIX: str
OAUTH2_STATE_EXPIRE_SECONDS: int
OAUTH2_GITHUB_REDIRECT_URI: str
OAUTH2_GOOGLE_REDIRECT_URI: str
OAUTH2_FRONTEND_LOGIN_REDIRECT_URI: str
OAUTH2_FRONTEND_BINDING_REDIRECT_URI: str

使用方式

  1. 安装并启用插件后,在 GitHub、Google 开放平台分别创建 OAuth 应用
  2. 将平台分配的 Client ID、Client Secret 配置到项目环境变量中
  3. 确保平台回调地址与 OAUTH2_GITHUB_REDIRECT_URIOAUTH2_GOOGLE_REDIRECT_URI 保持一致
  4. 配置前端登录回跳地址与绑定回跳地址
  5. 重启后端服务后,使用第三方登录、绑定和解绑能力

卸载说明

  • 卸载插件后,建议同步移除相关环境变量、插件基础配置和 backend/core/conf.py 中的插件配置
  • 如前端登录页或个人中心已集成第三方登录、绑定等能力,请同步清理对应集成

联系方式

  • 作者:wu-clan
  • 反馈方式:提交 Issue 或 PR