mirror of
https://github.com/fastapi-practices/fastapi-best-architecture.git
synced 2026-09-21 05:02:49 +00: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
使用方式
- 安装并启用插件后,在 GitHub、Google 开放平台分别创建 OAuth 应用
- 将平台分配的 Client ID、Client Secret 配置到项目环境变量中
- 确保平台回调地址与
OAUTH2_GITHUB_REDIRECT_URI、OAUTH2_GOOGLE_REDIRECT_URI保持一致 - 配置前端登录回跳地址与绑定回跳地址
- 重启后端服务后,使用第三方登录、绑定和解绑能力
卸载说明
- 卸载插件后,建议同步移除相关环境变量、插件基础配置和
backend/core/conf.py中的插件配置 - 如前端登录页或个人中心已集成第三方登录、绑定等能力,请同步清理对应集成
联系方式
- 作者:
wu-clan - 反馈方式:提交 Issue 或 PR