feat 支持Emby/Jellyfin登录认证

This commit is contained in:
jxxghp
2023-06-20 13:09:11 +08:00
parent 47f5942e22
commit 0776a0b235
17 changed files with 117 additions and 87 deletions

View File

@ -6,18 +6,17 @@ from sqlalchemy.orm import Session
from app import schemas
from app.chain.cookiecloud import CookieCloudChain
from app.chain.site import SiteChain
from app.core.security import verify_token
from app.db import get_db
from app.db.models.site import Site
from app.db.models.user import User
from app.db.siteicon_oper import SiteIconOper
from app.db.userauth import get_current_active_user, get_current_active_superuser
router = APIRouter()
@router.get("/", summary="所有站点", response_model=List[schemas.Site])
async def read_sites(db: Session = Depends(get_db),
_: User = Depends(get_current_active_user)) -> List[dict]:
_: schemas.TokenPayload = Depends(verify_token)) -> List[dict]:
"""
获取站点列表
"""
@ -29,7 +28,7 @@ async def update_site(
*,
db: Session = Depends(get_db),
site_in: schemas.Site,
_: User = Depends(get_current_active_superuser),
_: schemas.TokenPayload = Depends(verify_token)
) -> Any:
"""
更新站点信息
@ -48,7 +47,7 @@ async def update_site(
async def read_site(
site_id: int,
db: Session = Depends(get_db),
_: User = Depends(get_current_active_user),
_: schemas.TokenPayload = Depends(verify_token)
) -> Any:
"""
获取站点信息
@ -63,7 +62,7 @@ async def read_site(
@router.get("/cookiecloud", summary="CookieCloud同步", response_model=schemas.Response)
async def cookie_cloud_sync(_: User = Depends(get_current_active_user)) -> Any:
async def cookie_cloud_sync(_: schemas.TokenPayload = Depends(verify_token)) -> Any:
"""
运行CookieCloud同步站点信息
"""
@ -79,7 +78,7 @@ async def update_cookie(
username: str,
password: str,
db: Session = Depends(get_db),
_: User = Depends(get_current_active_user)) -> Any:
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
"""
使用用户密码更新站点Cookie
"""
@ -101,7 +100,7 @@ async def update_cookie(
@router.get("/test", summary="连接测试", response_model=schemas.Response)
async def test_site(domain: str, _: User = Depends(get_current_active_user)) -> Any:
async def test_site(domain: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any:
"""
测试站点是否可用
"""
@ -110,7 +109,7 @@ async def test_site(domain: str, _: User = Depends(get_current_active_user)) ->
@router.get("/icon", summary="站点图标", response_model=schemas.Response)
async def site_icon(domain: str, _: User = Depends(get_current_active_user)) -> Any:
async def site_icon(domain: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any:
"""
获取站点图标base64或者url
"""