docs(07-03): complete Login CLI Subcommand plan
- Cookie validation via /api/v4/me endpoint - login CLI subcommand with 3 modes: scan, import, status - AUTH-04 requirement complete: Cookie expiry detection - Phase 7 Login Auth complete, ready for Phase 8 Crawler Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
---
|
||||
phase: 07-login-auth
|
||||
plan: 03
|
||||
subsystem: auth
|
||||
tags: [cli, cookie, login, playwright, pytest]
|
||||
|
||||
# Dependency graph
|
||||
requires:
|
||||
- phase: 07-01
|
||||
provides: ZhihuLogin 类,二维码扫码登录核心
|
||||
- phase: 07-02
|
||||
provides: CookieManager 类,Cookie 持久化
|
||||
provides:
|
||||
- Cookie 验证功能 (validate_cookie 方法)
|
||||
- login CLI 子命令 (login, --import-cookie, --status)
|
||||
- 完整的命令行登录体验
|
||||
affects: [08-crawler, 09-processor]
|
||||
|
||||
# Tech tracking
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns: [TDD 测试驱动开发, CLI subparser 模式, asyncio.run() 异步包装]
|
||||
|
||||
key-files:
|
||||
created:
|
||||
- tests/test_auth/test_cookie_validation.py
|
||||
- tests/test_auth/test_cli_login.py
|
||||
modified:
|
||||
- kb_workflow/auth/zhihu_login.py
|
||||
- kb_workflow/kb_workflow.py
|
||||
|
||||
key-decisions:
|
||||
- "使用 Playwright request API 验证 Cookie 有效性"
|
||||
- "login 命令支持三种模式:扫码登录、导入 Cookie、状态检查"
|
||||
|
||||
patterns-established:
|
||||
- "CLI 子命令使用 argparse subparsers 扩展"
|
||||
- "异步方法通过 asyncio.run() 包装为同步 CLI 入口"
|
||||
|
||||
requirements-completed: [AUTH-04]
|
||||
|
||||
# Metrics
|
||||
duration: 12min
|
||||
completed: 2026-03-17
|
||||
---
|
||||
|
||||
# Phase 7 Plan 3: Login CLI 子命令 Summary
|
||||
|
||||
**实现完整的知乎登录命令行接口,支持二维码扫码、Cookie 导入和状态检查,整合 ZhihuLogin 和 CookieManager 提供端到端登录体验**
|
||||
|
||||
## Performance
|
||||
|
||||
- **Duration:** 12 min
|
||||
- **Started:** 2026-03-17T10:30:00Z
|
||||
- **Completed:** 2026-03-17T10:42:00Z
|
||||
- **Tasks:** 3 (2 auto, 1 checkpoint)
|
||||
- **Files modified:** 4
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- Cookie 验证功能:通过知乎 /api/v4/me 接口验证 Cookie 有效性
|
||||
- login CLI 子命令:支持三种操作模式(扫码登录、导入 Cookie、状态检查)
|
||||
- 完整测试覆盖:新增 8 个单元测试,总计 33 个测试全部通过
|
||||
|
||||
## Task Commits
|
||||
|
||||
Each task was committed atomically:
|
||||
|
||||
1. **Task 1: Cookie 验证功能** - `32bb220` (test), `919a467` (feat)
|
||||
2. **Task 2: login CLI 子命令** - `94c85ba` (test), `d9861aa` (feat)
|
||||
3. **Task 3: checkpoint:human-verify** - 用户批准通过
|
||||
|
||||
**Plan metadata:** 待提交
|
||||
|
||||
_Note: TDD tasks have multiple commits (test -> feat)_
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
- `kb_workflow/auth/zhihu_login.py` - 添加 CookieValidationResult 模型和 validate_cookie 方法
|
||||
- `kb_workflow/kb_workflow.py` - 添加 login 子命令和 login_command 函数
|
||||
- `tests/test_auth/test_cookie_validation.py` - 5 个 Cookie 验证测试
|
||||
- `tests/test_auth/test_cli_login.py` - 3 个 CLI 命令测试
|
||||
|
||||
## Decisions Made
|
||||
|
||||
- 使用 Playwright page.request.get() 直接调用知乎 API 验证 Cookie
|
||||
- login 命令默认启动二维码扫码,通过参数切换其他模式
|
||||
- --status 参数返回 CookieValidationResult 的完整信息(用户名、用户ID)
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
None - plan executed exactly as written.
|
||||
|
||||
## Issues Encountered
|
||||
|
||||
None - all implementations followed the plan specification.
|
||||
|
||||
## User Setup Required
|
||||
|
||||
None - no external service configuration required.
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
Phase 7 (登录认证体系) 完成:
|
||||
- 07-01: ZhihuLogin 类 + 二维码扫码登录
|
||||
- 07-02: CookieManager 类 + Cookie 持久化
|
||||
- 07-03: login CLI 子命令 + Cookie 验证
|
||||
|
||||
Ready for Phase 8 (Crawler) - 已有完整的登录和 Cookie 管理能力。
|
||||
|
||||
## Self-Check: PASSED
|
||||
|
||||
**Files verified:**
|
||||
- FOUND: kb_workflow/auth/zhihu_login.py
|
||||
- FOUND: kb_workflow/auth/cookie_manager.py
|
||||
- FOUND: kb_workflow/kb_workflow.py
|
||||
- FOUND: tests/test_auth/test_cookie_validation.py
|
||||
- FOUND: tests/test_auth/test_cli_login.py
|
||||
|
||||
**Commits verified:**
|
||||
- FOUND: 32bb220 (test: add failing tests for cookie validation)
|
||||
- FOUND: 919a467 (feat: implement cookie validation functionality)
|
||||
- FOUND: 94c85ba (test: add failing tests for login CLI subcommand)
|
||||
- FOUND: d9861aa (feat: implement login CLI subcommand)
|
||||
|
||||
---
|
||||
*Phase: 07-login-auth*
|
||||
*Completed: 2026-03-17*
|
||||
Reference in New Issue
Block a user