FastAPI-SSO 项目教程

随笔2个月前发布 易美佳
69 0 0

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.pyadvanced_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.pyrequirements.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

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...