diff --git a/backend/src/test_passkey_server.py b/backend/src/test_passkey_server.py new file mode 100644 index 00000000..83a4080e --- /dev/null +++ b/backend/src/test_passkey_server.py @@ -0,0 +1,35 @@ +""" +Minimal test server for passkey development. +Uses the real auth and passkey API routes without the downloader check. +Run with: uv run python test_passkey_server.py +""" +import uvicorn +from fastapi import FastAPI + +from module.api.auth import router as auth_router +from module.api.passkey import router as passkey_router +from module.database import Database +from module.update.startup import first_run + +app = FastAPI(title="AutoBangumi Passkey Test") + +# Mount real routers +app.include_router(auth_router, prefix="/api/v1") +app.include_router(passkey_router, prefix="/api/v1") + + +@app.on_event("startup") +async def startup(): + """Create tables and default user (no downloader check)""" + with Database() as db: + db.create_table() + db.user.add_default_user() + + +@app.get("/") +def index(): + return {"status": "Passkey test server running"} + + +if __name__ == "__main__": + uvicorn.run(app, host="0.0.0.0", port=7892) diff --git a/docs/changelog/3.2.md b/docs/changelog/3.2.md new file mode 100644 index 00000000..b2fd4a7c --- /dev/null +++ b/docs/changelog/3.2.md @@ -0,0 +1,55 @@ +# [3.2] - 2025-01 + +## Backend + +### Features + +- 新增 WebAuthn Passkey 无密码登录支持 + - 支持注册、认证、管理 Passkey 凭证 + - 支持多设备凭证(iCloud Keychain 等)备份检测 + - 支持克隆攻击防护(sign_count 验证) + - 认证策略模式,统一密码登录和 Passkey 登录接口 +- 数据库层新增异步支持(aiosqlite),为 Passkey 操作提供非阻塞 I/O +- `UserDatabase` 支持同步/异步双模式,兼容新旧代码路径 +- `Database` 上下文管理器同时支持 `with`(同步)和 `async with`(异步) + +### Changes + +- 升级 WebAuthn 依赖至 py_webauthn 2.7.0 +- `_get_webauthn_from_request` 优先使用浏览器 Origin header,修复跨端口开发环境下的验证问题 +- `auth_user` 和 `update_user_info` 转为异步函数 + +### Bugfixes + +- 修复 `aaguid` 类型错误(py_webauthn 2.7.0 中为 `str`,不再是 `bytes`) +- 修复 `credential_backup_eligible` 字段不存在的问题(改用 `credential_device_type`) +- 修复 `verify_authentication_response` 传入无效参数 `credential_id` 导致 TypeError +- 修复程序启动错误 +- 修复程序重启错误 +- 修复 episode 解析支持 int 和 float 类型 +- 修复 #805、#855 +- 修复多行标题解析后处理问题 +- 修复全局 RSS 过滤器需要重启才能生效的问题 + +## Frontend + +### Features + +- 全新 UI 设计系统重构 + - 统一的设计令牌(颜色、字体、间距、阴影、动画) + - 支持亮色/暗色主题切换 + - 完善的无障碍访问支持(ARIA、键盘导航、焦点管理) + - 响应式布局适配移动端 +- 新增 Passkey 管理面板(设置页) + - WebAuthn 浏览器支持检测 + - 设备名称自动识别 + - Passkey 列表展示与删除 +- 登录页新增 Passkey 指纹登录按钮 +- 新增可调比例图片组件 +- 新增移动端搜索样式 +- 优化移动端 Bangumi 列表样式 + +### Changes + +- 重构搜索逻辑,移除 rxjs 依赖 +- 升级前端依赖