Python-fastAPI-字段验证

在创建API的过程中,通常API接口是没有做任何验证的,这样就有可能出现可能的安全问题,不是什么特别重要的接口,故使用字段验证

注意:这种方式只是对于不重要的接口做验证,如果比较重要,建议使用oAuth2.0认证完整流程

代码如下:

import time
from typing import Union
from fastapi import FastAPI, Depends, HTTPException, Header
from zoho_select import zohoselect
from pydantic import BaseModel
from didamian import *
from crmsql import *
from Universal import *
from emailsend import Email
d = di()
z = zohoselect()
app = FastAPI()
class Item(BaseModel):
    iid: str
    area: str
    name: str
    source: str
    owner: str
    column:str
    desc:str
class Event(BaseModel):
    Eventid :str
    Eventtitle :str
    Eventcount :str
    whatid : str
    over :str

class Project_Management(BaseModel):
    iid :str
    title :str
    dep :str
    Owner :str
    st :str
def authenticate(token: str = Header(...)):
    # 检查传递的 token 是否符合预期的值
    if token != "66467345678999876456746":
        raise HTTPException(status_code=401,detail=None)

@app.get("/test")
def read_root(token: str = Depends(authenticate)):
    return {"Hello": "World"}

我们在authenticate方法中定义一个token字段,指明在Header里面,并在get方法路径中指明需要这个必填字段,故发送过来的请求必须有taoken字段,且值必须正确。在authenticate方法中自行定义token的值

if token != "66467345678999876456746":

post或者其他方法一样,如法炮制就行,

请求正常返回:

{
	"Hello": "World"
}

请求字段值错误返回:

{
	"detail": "Unauthorized"
}

请求头中未包含必填字段返回:

{
	"detail": [
		{
			"type": "missing",
			"loc": [
				"header",
				"token"
			],
			"msg": "Field required",
			"input": null,
			"url": "https://errors.pydantic.dev/2.2/v/missing"
		}
	]
}
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值