FastAPI-SSO 使用教程
项目介绍
FastAPI-SSO 是一个基于 FastAPI 的单点登录(SSO)库,旨在简化在 FastAPI 应用中集成第三方认证服务的过程。它支持多种流行的身份提供商,如 Google、Facebook、GitHub 等,使得开发者能够轻松实现用户认证和授权。
项目快速启动
安装依赖
首先,确保你已经安装了 FastAPI 和 FastAPI-SSO:
pip install fastapi fastapi-sso
创建 FastAPI 应用
创建一个简单的 FastAPI 应用,并集成 FastAPI-SSO:
from fastapi import FastAPI, Request
from fastapi_sso.sso.google import GoogleSSO
app = FastAPI()
google_sso = GoogleSSO(
client_id="YOUR_GOOGLE_CLIENT_ID",
client_secret="YOUR_GOOGLE_CLIENT_SECRET",
redirect_uri="http://localhost:8000/auth/callback",
)
@app.get("/login")
async def login():
return await google_sso.get_login_redirect()
@app.get("/auth/callback")
async def callback(request: Request):
user = await google_sso.verify_and_process(request)
return {"message": "Logged in successfully", "user": user}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
运行应用
使用以下命令运行你的 FastAPI 应用:
uvicorn main:app --reload
访问 http://localhost:8000/login
开始登录流程。
应用案例和最佳实践
应用案例
FastAPI-SSO 可以用于构建需要用户认证的 Web 应用,例如:
- 企业内部管理系统
- 社交网络平台
- 在线教育平台
最佳实践
- 安全配置:确保你的
client_id
和client_secret
安全存储,避免泄露。 - 错误处理:在回调处理中添加错误处理逻辑,以应对认证失败的情况。
- 用户信息存储:在成功认证后,合理存储用户信息,以便后续使用。
典型生态项目
FastAPI-SSO 可以与其他 FastAPI 生态项目结合使用,例如:
- FastAPI-Users:用于管理用户和认证流程。
- FastAPI-Cache:用于缓存认证信息,提高性能。
- FastAPI-Scheduler:用于定期清理过期的认证会话。
通过这些生态项目的结合,可以构建一个完整且高效的用户认证系统。