fastapi请求前校验登录状态(不使用OAuth2PasswordBearer) demo
时间: 2024-05-11 08:15:31 浏览: 23
可以使用FastAPI自带的Depends函数来实现请求前校验登录状态的功能,以下是一个示例:
```python
from fastapi import Depends, FastAPI, HTTPException
from fastapi.security import HTTPBasicCredentials
app = FastAPI()
def verify_login(credentials: HTTPBasicCredentials):
correct_username = "admin"
correct_password = "password123"
if credentials.username != correct_username or credentials.password != correct_password:
raise HTTPException(status_code=401, detail="Incorrect username or password")
return True
@app.get("/secret")
async def secret_data(logged_in: bool = Depends(verify_login)):
return {"secret": "data"}
```
在这个示例中,verify_login函数接收HTTPBasicCredentials对象,验证用户名和密码是否正确,如果不正确就抛出HTTPException异常,否则返回True。
在secret_data路由中,我们使用Depends函数把verify_login函数作为依赖项,如果verify_login函数返回True,说明登录状态正确,路由可以正常访问,否则返回401 Unauthorized错误。通过这种方式,可以简单有效地实现请求前校验登录状态。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)