feat(auth): 新增ws登录认证、区分http和ws认证

This commit is contained in:
xingc
2025-04-16 14:42:34 +08:00
parent 94ddc6b926
commit 42e6b66984
4 changed files with 46 additions and 21 deletions

View File

@@ -15,7 +15,7 @@ from core.db.crud import CRUD
from core.db.engine import get_async_session
from core.db.models import User, UserFollows
from core.routers.auth.schema import LoginUser
from core.routers.auth.services import get_current_user
from core.routers.auth.services import get_current_user_form_http
from . import schema
@@ -24,7 +24,7 @@ user_router = APIRouter(prefix='/user', tags=['用户模块'])
@user_router.get('/me/info', summary='用户信息(我的)', response_model=base_schema.BaseResponse[schema.User])
async def get_me_info(
login_user: LoginUser = Depends(get_current_user),
login_user: LoginUser = Depends(get_current_user_form_http),
db_session: AsyncSession = Depends(get_async_session)
):
db_crud = CRUD(db_session, User)
@@ -42,7 +42,7 @@ async def get_me_info(
)
async def get_visit_user_info(
user_id: int,
login_user: LoginUser = Depends(get_current_user),
login_user: LoginUser = Depends(get_current_user_form_http),
db_session: AsyncSession = Depends(get_async_session)
):
if user_id == login_user.user_id:
@@ -65,7 +65,7 @@ async def get_visit_user_info(
]
)
async def get_all_followers(
login_user: LoginUser = Depends(get_current_user),
login_user: LoginUser = Depends(get_current_user_form_http),
page: int = Query(default=1, gt=0),
page_size: int = Query(default=15, gt=0, le=200),
db_session: AsyncSession = Depends(get_async_session)
@@ -104,11 +104,11 @@ async def get_all_followers(
async def follow_user(
user_id: int,
action: Literal['follower', 'unfollower'],
login_user: LoginUser = Depends(get_current_user),
login_user: LoginUser = Depends(get_current_user_form_http),
db_session: AsyncSession = Depends(get_async_session)
):
if user_id == login_user.user_id:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail='无法操作')
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail='无法操作')
db_crud = CRUD(db_session, User)
follower_user: User | None = await db_crud.get(filters={'user_id': user_id})
@@ -143,7 +143,7 @@ async def follow_user(
async def search_user(
nickname: str = Query(...),
page_size: int = Query(default=30, gt=0, le=30),
login_user: LoginUser = Depends(get_current_user),
login_user: LoginUser = Depends(get_current_user_form_http),
db_session: AsyncSession = Depends(get_async_session)
):
db_crud = CRUD(db_session, User)