feat: 使用 Playwright 实现自动化 cookie 获取和验证
主要变更: - 新增 Playwright 登录认证服务 (services/playwright-auth.ts) - 重构 get-activity.ts 使用 Playwright 替代 Axios 登录 - 实现自动 cookie 过期检测和重试机制 - 优化 Docker 配置支持 Playwright 浏览器运行 - 添加启动脚本自动验证和刷新 cookies - 完善错误处理:区分 4xx(认证失败) 和 5xx(服务器错误) 技术细节: - 删除旧版 login_template.txt 和 nkcs-engage.cookie.txt - 添加 startup.sh 启动时自动验证 cookies - 改进 cookie 验证逻辑,添加指数退避重试 - Dockerfile 安装 Playwright 系统依赖 - docker-compose.yaml 添加 volumes 和 health checks 测试: - 添加 auth.spec.ts 自动化测试 - 添加 get-cookies.ts 和 test-cookies-validity.ts 工具脚本 - 验证 401/500/000 等错误场景处理正确
This commit is contained in:
24
test/get-cookies.ts
Normal file
24
test/get-cookies.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { loginWithPlaywright, saveCookiesToCache } from '../services/playwright-auth';
|
||||
|
||||
const username = process.env.API_USERNAME;
|
||||
const password = process.env.API_PASSWORD;
|
||||
|
||||
if (!username || !password) {
|
||||
console.error('❌ API_USERNAME and API_PASSWORD environment variables are required');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log('🔑 Starting cookie extraction...\n');
|
||||
|
||||
loginWithPlaywright(username, password)
|
||||
.then(cookies => {
|
||||
console.log(`\n✅ Extracted ${cookies.length} cookies`);
|
||||
console.log('📁 Cookies saved to: ./services/cookies.json');
|
||||
|
||||
saveCookiesToCache(cookies);
|
||||
process.exit(0);
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('\n❌ Cookie extraction failed:', error);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user