FastAPI-SSO 项目教程
fastapi-ssoFastAPI plugin to enable SSO to most common providers (such as Facebook login, Google login and login via Microsoft Office 365 Account)项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-sso
1. 项目的目录结构及介绍
FastAPI-SSO 项目的目录结构如下:
fastapi-sso/
├── fastapi_sso/
│ ├── __init__.py
│ ├── sso.py
│ ├── providers/
│ │ ├── __init__.py
│ │ ├── google.py
│ │ ├── facebook.py
│ │ ├── microsoft.py
│ ├── tests/
│ │ ├── __init__.py
│ │ ├── test_sso.py
├── examples/
│ ├── basic_example.py
│ ├── advanced_example.py
├── README.md
├── setup.py
├── requirements.txt
目录结构介绍
fastapi_sso/
: 项目的主要代码目录。
__init__.py
: 初始化文件。sso.py
: 主要逻辑文件。providers/
: 包含不同SSO提供者的实现。
google.py
: Google SSO 实现。facebook.py
: Facebook SSO 实现。microsoft.py
: Microsoft SSO 实现。 tests/
: 测试文件目录。
test_sso.py
: SSO 测试文件。 examples/
: 示例代码目录。
basic_example.py
: 基础示例。advanced_example.py
: 高级示例。 README.md
: 项目说明文档。setup.py
: 安装配置文件。requirements.txt
: 依赖包列表。
2. 项目的启动文件介绍
项目的启动文件位于 examples/
目录下,例如 basic_example.py
和 advanced_example.py
。这些文件展示了如何使用 FastAPI-SSO 进行 SSO 认证。
basic_example.py
from fastapi import FastAPI
from fastapi_sso.sso.google import GoogleSSO
app = FastAPI()
google_sso = GoogleSSO("your-client-id", "your-client-secret", "https://your-redirect-uri")
@app.get("/google/login")
async def google_login():
return await google_sso.get_login_redirect()
@app.get("/google/callback")
async def google_callback(request: Request):
user = await google_sso.verify_and_process(request)
return {"user": user}
advanced_example.py
from fastapi import FastAPI
from fastapi_sso.sso.facebook import FacebookSSO
app = FastAPI()
facebook_sso = FacebookSSO("your-client-id", "your-client-secret", "https://your-redirect-uri")
@app.get("/facebook/login")
async def facebook_login():
return await facebook_sso.get_login_redirect()
@app.get("/facebook/callback")
async def facebook_callback(request: Request):
user = await facebook_sso.verify_and_process(request)
return {"user": user}
3. 项目的配置文件介绍
项目的配置文件主要是 setup.py
和 requirements.txt
。
setup.py
setup.py
文件用于项目的安装和分发,包含项目的元数据和依赖信息。
from setuptools import setup, find_packages
setup(
name="fastapi-sso",
version="0.1.0",
packages=find_packages(),
install_requires=[
"fastapi",
"httpx",
"pydantic",
],
author="Tomas Votava",
author_email="tomas.votava@example.com",
description="FastAPI SSO integration",
long_description=open("README.md").read(),
long_description_content_type="text/markdown",
url="https://github.com/tomasvotava/fastapi-sso",
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System
fastapi-ssoFastAPI plugin to enable SSO to most common providers (such as Facebook login, Google login and login via Microsoft Office 365 Account)项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-sso