FastAPI-Authz 项目教程

FastAPI-Authz 项目教程

fastapi-authzUse Casbin in FastAPI, Casbin is a powerful and efficient open-source access control library.项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-authz

1. 项目的目录结构及介绍

FastAPI-Authz 项目的目录结构如下:

fastapi-authz/
├── examples/
│   └── ...
├── fastapi_authz/
│   ├── __init__.py
│   ├── casbin_middleware.py
│   └── ...
├── tests/
│   └── ...
├── .gitignore
├── .releaserc.json
├── CHANGELOG.md
├── LICENSE
├── README.md
├── dev-requirements.in
├── dev-requirements.txt
├── requirements.in
├── requirements.txt
├── setup.cfg
└── setup.py

目录结构介绍

  • examples/: 包含示例代码,展示如何使用 FastAPI-Authz 中间件。
  • fastapi_authz/: 核心代码目录,包含中间件的实现文件。
    • __init__.py: 模块初始化文件。
    • casbin_middleware.py: Casbin 中间件的实现文件。
  • tests/: 包含项目的单元测试文件。
  • .gitignore: Git 忽略文件配置。
  • .releaserc.json: 发布配置文件。
  • CHANGELOG.md: 项目变更日志。
  • LICENSE: 项目许可证。
  • README.md: 项目说明文档。
  • dev-requirements.indev-requirements.txt: 开发依赖配置文件。
  • requirements.inrequirements.txt: 项目依赖配置文件。
  • setup.cfgsetup.py: 项目打包和安装配置文件。

2. 项目的启动文件介绍

FastAPI-Authz 项目的启动文件通常位于 examples/ 目录下,例如 examples/basic_example.py。以下是一个示例启动文件的内容:

from fastapi import FastAPI
from fastapi_authz import CasbinMiddleware
from starlette.middleware.authentication import AuthenticationMiddleware
from starlette.authentication import BasicAuth

app = FastAPI()

# 添加 Casbin 中间件
app.add_middleware(CasbinMiddleware, enforcer=enforcer)

# 添加基本认证中间件
app.add_middleware(AuthenticationMiddleware, backend=BasicAuth())

@app.get("/")
def read_root():
    return {"message": "Hello World"}

启动文件介绍

  • from fastapi import FastAPI: 导入 FastAPI 类,用于创建 FastAPI 应用实例。
  • from fastapi_authz import CasbinMiddleware: 导入 Casbin 中间件。
  • from starlette.middleware.authentication import AuthenticationMiddleware: 导入认证中间件。
  • from starlette.authentication import BasicAuth: 导入基本认证后端。
  • app = FastAPI(): 创建 FastAPI 应用实例。
  • app.add_middleware(CasbinMiddleware, enforcer=enforcer): 添加 Casbin 中间件,enforcer 是 Casbin 的执行器实例。
  • app.add_middleware(AuthenticationMiddleware, backend=BasicAuth()): 添加基本认证中间件。
  • @app.get("/"): 定义一个简单的路由,返回 "Hello World" 消息。

3. 项目的配置文件介绍

FastAPI-Authz 项目的配置文件主要包括 setup.cfgsetup.py,以及依赖配置文件 requirements.inrequirements.txt

setup.cfg

setup.cfg 文件包含了项目的打包和安装配置,例如:

[metadata]
name = fastapi-authz
version = 0.1.0
description = An authorization middleware for FastAPI based on PyCasbin
author = Your Name
author_email = your.email@example.com
url = https://github.com/pycasbin/fastapi-authz
license = Apache-2.0

[options]
packages = find:
install_requires =
    fastapi
    pycasbin

[options.packages.find]
where = .

setup.py

setup.py 文件用于项目的打包和分发,例如:

from setuptools import setup, find_packages

setup(
    name="fastapi-authz",

fastapi-authzUse Casbin in FastAPI, Casbin is a powerful and efficient open-source access control library.项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-authz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆声淼Germaine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值