modify: 代码注释

This commit is contained in:
2026-04-26 21:57:17 +08:00
parent d13ad1f907
commit 3fbd7764af
32 changed files with 2029 additions and 164 deletions
+98 -2
View File
@@ -30,6 +30,21 @@ async def register(
user_data: UserCreate,
session: AsyncSession = Depends(get_session),
):
"""
用户注册接口
创建新用户账户,检查邮箱是否已被注册,如果邮箱未被注册则创建新用户。
Args:
user_data: 用户注册数据,包含邮箱、密码、用户名和全名等信息
session: 数据库会话对象,用于执行数据库操作
Returns:
UserRead: 创建成功的用户信息,包含用户ID、邮箱、用户名等字段
Raises:
HTTPException: 当邮箱已被注册时抛出400错误
"""
existing = await UserService.get_user_by_email(user_data.email, session)
if existing:
raise HTTPException(
@@ -63,6 +78,25 @@ async def login(
request: Request,
session: AsyncSession = Depends(get_session),
):
"""
用户登录接口
验证用户凭据并生成访问令牌和刷新令牌。依次检查邮箱是否存在、密码是否正确、用户是否被禁用。
Args:
user_data: 用户登录数据,包含邮箱和密码
request: FastAPI请求对象,用于获取客户端信息
session: 数据库会话对象,用于查询用户信息
Returns:
TokenResponse: 包含访问令牌(access_token)、刷新令牌(refresh_token)和令牌类型(token_type)的响应对象
Raises:
HTTPException:
- 400错误:当邮箱不存在时
- 401错误:当密码错误时
- 402错误:当用户账户被禁用时
"""
user = await UserService.get_user_by_email(user_data.email, session)
if not user:
raise HTTPException(
@@ -93,6 +127,22 @@ async def refresh_token(
credentials: HTTPAuthorizationCredentials = Depends(refresh_scheme),
session: AsyncSession = Depends(get_session),
):
"""
刷新访问令牌接口
使用有效的刷新令牌获取新的访问令牌。验证刷新令牌的有效性,如果有效则生成新的访问令牌。
Args:
request: FastAPI请求对象,用于获取客户端信息
credentials: HTTP认证凭证,从请求头中提取的刷新令牌
session: 数据库会话对象,用于验证令牌状态
Returns:
RefreshTokenResponse: 包含新的访问令牌(access_token)和令牌类型(token_type)的响应对象
Raises:
HTTPException: 当刷新令牌无效或已过期时抛出401错误
"""
auth_service = get_auth_service()
refresh_token = credentials.credentials
@@ -112,6 +162,17 @@ async def refresh_token(
async def logout(
credentials: HTTPAuthorizationCredentials = Depends(access_scheme),
):
"""
用户登出接口
使当前的访问令牌失效,实现单设备登出功能。
Args:
credentials: HTTP认证凭证,从请求头中提取的访问令牌
Returns:
Userlogout: 登出成功响应,包含成功消息和状态码200
"""
auth_service = get_auth_service()
token = credentials.credentials
await auth_service.logout(token)
@@ -120,6 +181,17 @@ async def logout(
@router.post("/logout-all", summary="登出所有设备", response_model=Userlogout)
async def logout_all(current_user: TokenData = Depends(get_current_user)):
"""
登出所有设备接口
使指定用户的所有活跃会话令牌失效,实现多设备同时登出功能。
Args:
current_user: 当前登录用户的令牌数据,包含用户ID等信息
Returns:
Userlogout: 登出成功响应,包含成功消息和状态码200
"""
auth_service = get_auth_service()
await auth_service.logout_all(current_user.user_id)
@@ -128,7 +200,17 @@ async def logout_all(current_user: TokenData = Depends(get_current_user)):
@router.get("/sessions", summary="获取用户会话")
async def get_sessions(current_user: TokenData = Depends(get_current_user)):
"""获取用户的所有活跃会话"""
"""
获取用户会话列表接口
查询并返回指定用户的所有活跃会话信息,包括每个会话的设备信息和创建时间等。
Args:
current_user: 当前登录用户的令牌数据,包含用户ID等信息
Returns:
UserSession: 用户会话信息对象,包含用户ID、会话列表和会话总数
"""
auth_service = get_auth_service()
sessions = await auth_service.get_user_sessions(current_user.user_id)
@@ -147,7 +229,21 @@ async def get_current_user_info(
session: AsyncSession = Depends(get_session),
current_user: TokenData = Depends(get_current_user),
):
"""获取当前登录用户的信息"""
"""
获取当前用户信息接口
根据当前登录用户的令牌信息,从数据库中查询并返回完整的用户资料。
Args:
session: 数据库会话对象,用于查询用户信息
current_user: 当前登录用户的令牌数据,包含用户ID等信息
Returns:
UserRead: 用户详细信息,包含用户ID、邮箱、用户名、全名、激活状态等字段
Raises:
HTTPException: 当用户不存在时抛出404错误
"""
user = await UserService.get_user_by_id(UUID(current_user.user_id), session)
if not user:
raise HTTPException(