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:
@@ -12,7 +12,7 @@
|
||||
- [x] **AUTH-01**: 用户可通过二维码扫码登录知乎
|
||||
- [x] **AUTH-02**: 用户可手动设置 Cookie 进行认证
|
||||
- [x] **AUTH-03**: Cookie 自动持久化到本地文件,下次自动复用
|
||||
- [ ] **AUTH-04**: Cookie 过期时自动检测并提示重新登录
|
||||
- [x] **AUTH-04**: Cookie 过期时自动检测并提示重新登录
|
||||
|
||||
### 内容爬取
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
| AUTH-01 | Phase 7 | Complete |
|
||||
| AUTH-02 | Phase 7 | Complete |
|
||||
| AUTH-03 | Phase 7 | Complete |
|
||||
| AUTH-04 | Phase 7 | Pending |
|
||||
| AUTH-04 | Phase 7 | Complete |
|
||||
| CONT-01 | Phase 8 | Pending |
|
||||
| CONT-02 | Phase 8 | Pending |
|
||||
| CONT-03 | Phase 8 | Pending |
|
||||
|
||||
+20
-18
@@ -3,15 +3,15 @@ gsd_state_version: 1.0
|
||||
milestone: v1.2
|
||||
milestone_name: Zhihu Crawler
|
||||
status: executing
|
||||
stopped_at: Plan 07-01 complete
|
||||
last_updated: "2026-03-17T10:05:00.000Z"
|
||||
last_activity: 2026-03-17 — Plan 07-01 QR Code Login Core
|
||||
stopped_at: Phase 07 complete
|
||||
last_updated: "2026-03-17T10:45:00.000Z"
|
||||
last_activity: 2026-03-17 — Phase 07 Login Auth complete
|
||||
progress:
|
||||
total_phases: 9
|
||||
completed_phases: 6
|
||||
completed_phases: 7
|
||||
total_plans: 21
|
||||
completed_plans: 20
|
||||
percent: 95
|
||||
completed_plans: 21
|
||||
percent: 100
|
||||
---
|
||||
|
||||
# Project State
|
||||
@@ -25,24 +25,25 @@ See: .planning/PROJECT.md (updated 2026-03-17)
|
||||
|
||||
## Current Position
|
||||
|
||||
Phase: 7 of 9 (登录认证体系)
|
||||
Plan: 01 of 03 (QR Code Login Core complete)
|
||||
Status: Plan 07-01 complete, continuing to 07-02
|
||||
Last activity: 2026-03-17 — Plan 07-01 QR Code Login Core
|
||||
Phase: 8 of 9 (Crawler - 爬虫核心)
|
||||
Plan: 01 of 03
|
||||
Status: Phase 07 complete, ready for Phase 08
|
||||
Last activity: 2026-03-17 — Phase 07 Login Auth complete
|
||||
|
||||
Progress: [█████████░] 95% (v1.2 milestone)
|
||||
Progress: [██████████] 100% (v1.2 milestone - Phase 7 complete)
|
||||
|
||||
## Performance Metrics
|
||||
|
||||
**Velocity:**
|
||||
- Total plans completed: 2 (v1.2)
|
||||
- Average duration: 10 min
|
||||
- Total execution time: 20 min
|
||||
- Total plans completed: 3 (v1.2)
|
||||
- Average duration: 11 min
|
||||
- Total execution time: 32 min
|
||||
|
||||
| Plan | Duration | Tasks | Files | Date |
|
||||
|------|----------|-------|-------|------|
|
||||
| 07-01 | 15min | 2 | 5 | 2026-03-17 |
|
||||
| 07-02 | 5min | 2 | 4 | 2026-03-17 |
|
||||
| 07-03 | 12min | 3 | 4 | 2026-03-17 |
|
||||
|
||||
## Accumulated Context
|
||||
|
||||
@@ -69,6 +70,7 @@ v1.2 decisions:
|
||||
- 保存 Cookie 后清除 get_settings 缓存确保配置刷新
|
||||
- 使用 tenacity Retrying 对象而非 @retry 装饰器支持可配置超时
|
||||
- 多个 canvas 选择器降级提高 QR 码检测鲁棒性
|
||||
- login CLI 命令支持三种模式:扫码登录、导入 Cookie、状态检查
|
||||
|
||||
### Blockers/Concerns
|
||||
|
||||
@@ -76,8 +78,8 @@ None.
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-03-17T10:05:00.000Z
|
||||
Stopped at: Plan 07-01 complete
|
||||
Resume file: .planning/phases/07-login-auth/07-01-SUMMARY.md
|
||||
Last session: 2026-03-17T10:45:00.000Z
|
||||
Stopped at: Phase 07 complete
|
||||
Resume file: .planning/phases/07-login-auth/07-03-SUMMARY.md
|
||||
|
||||
**Next step:** Continue with plan 07-02 for Cookie Import & Persistence
|
||||
**Next step:** Continue with Phase 08 Crawler
|
||||
|
||||
@@ -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