feat: 用户相关接口注释说明
This commit is contained in:
@@ -44,7 +44,9 @@ class Token(BaseModel):
|
||||
token_type: str
|
||||
|
||||
|
||||
# 添加用户相关的端点接口
|
||||
def add_user_route(app: FastAPI):
|
||||
# 用户注册接口
|
||||
@app.post("/registry")
|
||||
async def _registry(registry_user: RegistryUser, session: AsyncSessionDep):
|
||||
|
||||
@@ -90,6 +92,7 @@ def add_user_route(app: FastAPI):
|
||||
"active_url": active_url
|
||||
}
|
||||
|
||||
# 验证用户账号接口
|
||||
@app.get("/verify")
|
||||
async def _verify(token: str, session: AsyncSessionDep):
|
||||
username = CryptUtils.get_username_from_token(token)
|
||||
@@ -116,6 +119,7 @@ def add_user_route(app: FastAPI):
|
||||
"message": f"用户 {username} 激活成功"
|
||||
}
|
||||
|
||||
# 登录接口
|
||||
@app.post("/login")
|
||||
@app.post("/token")
|
||||
async def _token(session: AsyncSessionDep, form_data: OAuth2PasswordRequestForm = Depends()):
|
||||
@@ -139,15 +143,18 @@ def add_user_route(app: FastAPI):
|
||||
"token": token,
|
||||
}
|
||||
|
||||
# 获取用户信息接口
|
||||
@app.get("/users/me")
|
||||
async def _me(current_user: PublicUser = Depends(get_current_user)):
|
||||
return current_user
|
||||
|
||||
# 订单查询接口
|
||||
@app.post("/order")
|
||||
async def _query_order(product_name: str, current_user: PublicUser = Depends(get_current_user)):
|
||||
return [product_name]
|
||||
|
||||
|
||||
# 用户登录信息验证处理,验证账号密码通过会返回用户信息,否则返回None
|
||||
async def authenticate_user(session: AsyncSessionDep, username: str, password: str):
|
||||
query = select(UserModel).where(UserModel.username == username)
|
||||
result = await session.execute(query)
|
||||
@@ -166,8 +173,10 @@ async def authenticate_user(session: AsyncSessionDep, username: str, password: s
|
||||
return public_user
|
||||
|
||||
|
||||
# 用于注入token字符串
|
||||
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
|
||||
|
||||
# 当token失效或者不存在时抛出的异常
|
||||
unauthorized_exception = HTTPException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
detail="The token is invalid or had expired",
|
||||
@@ -175,6 +184,7 @@ unauthorized_exception = HTTPException(
|
||||
)
|
||||
|
||||
|
||||
# 获取当前用户信息,通过注入的token来获取当前用户信息,如果token有效则返回用户信息,无效则抛出异常
|
||||
async def get_current_user(session: AsyncSessionDep, token: str = Depends(oauth2_scheme)):
|
||||
try:
|
||||
username = CryptUtils.get_username_from_token(token)
|
||||
@@ -190,6 +200,7 @@ async def get_current_user(session: AsyncSessionDep, token: str = Depends(oauth2
|
||||
return PublicUser(**user_model.model_dump())
|
||||
|
||||
|
||||
# 根据用户名获取用户信息
|
||||
async def get_user_by_username(username: str, session: AsyncSessionDep):
|
||||
query = (
|
||||
select(UserModel)
|
||||
|
||||
Reference in New Issue
Block a user