您现在的位置是:主页 > news > 一蓝网站建设/网站关键词排名优化

一蓝网站建设/网站关键词排名优化

admin2025/5/24 2:52:53news

简介一蓝网站建设,网站关键词排名优化,做性视频网站有哪些内容,建设网站需要的软件Part1前言通常,我们的接口都是需要认证后才能可以访问的,前面我们介绍了 token 的生成和校验,那在 FastApi 中怎么设计需要认证的接口呢?Part2定义令牌对象oauth2_scheme OAuth2PasswordBearer(tokenUrl"/token/")以上…

一蓝网站建设,网站关键词排名优化,做性视频网站有哪些内容,建设网站需要的软件Part1前言通常,我们的接口都是需要认证后才能可以访问的,前面我们介绍了 token 的生成和校验,那在 FastApi 中怎么设计需要认证的接口呢?Part2定义令牌对象oauth2_scheme OAuth2PasswordBearer(tokenUrl"/token/")以上…

Part1前言

通常,我们的接口都是需要认证后才能可以访问的,前面我们介绍了 token 的生成和校验,那在 FastApi 中怎么设计需要认证的接口呢?

Part2定义令牌对象

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/token/")

以上/token/为获取 tokenURI,具体内容如下:

class Token(BaseModel):access_token: strtoken_type: str@app.post('/token/',response_model=Token)
async def get_token(response:Response,form_data: OAuth2PasswordRequestForm = Depends()):if form_data.username=='phyger' and form_data.password=='phyger666':response.headers['access_token']=create_token()return {"access_token":create_token(),"token_type":"bearer"}

/token/可以返回指定格式的令牌信息。

Part3定义需要认证的接口

@app.get('/format/{name}')
async def fmt(name,token=Depends(oauth2_scheme)):print(token)print(type(name))new_name = name.title()return {'result':new_name}

直接访问此接口

如上,直接访问会提示未认证,这样,我们已经达到了目的,但是怎么样才能实现准确无误的认证呢?

带上 bearer token 试试

你会发现,我们携带的错误的 token 也能成功,这是为什么呢?

因为在接口中,我们通过 oauth2_scheme 拿到了 token,这个 token 是标准的 bearer 格式,但是我们没有对其进行校验,所以只要格式正确,接口都能正常返回。

使用错误的 bearer 格式

如上,使用错误的 bearer 格式的 token,就无法访问接口了。

Part4获取和校验 token

思路:通过上面的代码,我们将获取 token,校验 token 封装成一个静态方法,在需要认证的接口中对这个方法进行依赖即可。

封装的接口

from utm import judge_tokendef login_required(token=Depends(oauth2_scheme)):credentials_exception = HTTPException(status_code=status.HTTP_401_UNAUTHORIZED,detail="认证失败!",headers={"WWW-Authenticate": "Bearer"},)if judge_token(token=token):return Trueelse:raise credentials_exception

需要认证的接口

@app.get('/format/{name}')
async def fmt(name,token=Depends(login_required)):print(token)print(type(name))new_name = name.title()return {'result':new_name}

直接访问/format/{name}接口

提示:未认证!

携带过期的 token 访问

提示:认证失败!

使用错误 bearer 格式

提示:未认证!

使用正确有效的 token

如上,成功!

上面,我们将 token 错误,token 过期都统一定义为认证失败!后续可以进行细化。还需要考虑 token 续签的实现。

往期推荐

IO被谁吃了?

5分钟带你了解Scrum

Gevent | 异步就用它!

Jmeter测试TCP百万连接

用Python操作配置文件,超简单

5分钟学会本地Pypi源搭建

jenkinsclient | 好用的jenkins客户端

PySimpleGUI经典实践之:这个汉字怎么读?

FastApi-17-页面美化-2

FastApi-18-Token生成

FastApi-19-Token校验

点亮在看!