首先,安装需要的Python库:
pip install fastapi uvicorn python-jose[cryptography] passlib[bcrypt]
接下来,我们将创建一个名为main.py
的文件,其中包含我们的FastAPI应用程序。
from fastapi import FastAPI, Depends, HTTPException
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
from passlib.context import CryptContext
from datetime import datetime, timedelta
from jose import JWTError, jwt
# 定义密码上下文
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
# 构建FastAPI应用程序
app = FastAPI()
# 定义身份验证对象
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
# 定义一些常量
ALGORITHM = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES = 30
SECRET_KEY = "1b539c7abb9826f02f13c7d4a098bd87e281e0bdf90d1c4eef4f3f4a11a30"
# 模拟数据库中的用户,实际项目中需要更加安全的存储方式
fake_users_db = {
"john@example.com":