fix: 支持Chromium执行Admin登录验证
This commit is contained in:
parent
c7a74bda61
commit
1faaa8767f
@ -51,7 +51,7 @@ pnpm run napcat-device-profile-check
|
|||||||
pnpm run cleanup-history -- --dry-run
|
pnpm run cleanup-history -- --dry-run
|
||||||
pnpm run cleanup-history -- --execute
|
pnpm run cleanup-history -- --execute
|
||||||
pnpm run deploy-observation -- --project api --job KT-Template/KT-Template-API/main --namespace kt-prod --deployment kt-template-online-api --container api --health-url http://127.0.0.1:48085/health/runtime --smoke "curl -fsS --max-time 8 http://127.0.0.1:48085/health/runtime"
|
pnpm run deploy-observation -- --project api --job KT-Template/KT-Template-API/main --namespace kt-prod --deployment kt-template-online-api --container api --health-url http://127.0.0.1:48085/health/runtime --smoke "curl -fsS --max-time 8 http://127.0.0.1:48085/health/runtime"
|
||||||
pnpm run admin-login -- --url http://127.0.0.1:5999/#/auth/login
|
pnpm run admin-login -- --browser chromium --url http://127.0.0.1:5999/#/auth/login
|
||||||
```
|
```
|
||||||
|
|
||||||
如果 Debian shell 内的 Node/npm/pnpm 版本不符合 `engines`,先执行 `nvm ls` 查看已安装版本,再用 `nvm use <version>` 切换到目标版本;不要引用 Windows Node 或 `/mnt/*` 下的平台依赖。
|
如果 Debian shell 内的 Node/npm/pnpm 版本不符合 `engines`,先执行 `nvm ls` 查看已安装版本,再用 `nvm use <version>` 切换到目标版本;不要引用 Windows Node 或 `/mnt/*` 下的平台依赖。
|
||||||
@ -133,7 +133,7 @@ Windows 上的 stdio MCP 客户端通过 `wsl.exe` 启动 Debian Bash;Node、
|
|||||||
|
|
||||||
| 脚本 | 用途 |
|
| 脚本 | 用途 |
|
||||||
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `pnpm run admin-login` | 使用可见 Edge 打开 Admin 登录页,填写账号密码,拖动滑块,保存登录态和截图。默认账号来自初始化数据 `admin/123456`,生产或个人账号用 `KT_ADMIN_USERNAME` / `KT_ADMIN_PASSWORD` 或 CLI 参数覆盖。 |
|
| `pnpm run admin-login` | 使用 Edge(默认)或 `--browser chromium` 打开 Admin 登录页,填写账号密码,拖动滑块,保存登录态和截图。默认账号来自初始化数据 `admin/123456`,生产或个人账号用 `KT_ADMIN_USERNAME` / `KT_ADMIN_PASSWORD` 或 CLI 参数覆盖。 |
|
||||||
| `pnpm run global-review` | 对 KT 子仓库和根治理文件做只读审查:默认深扫当前变更,检查凭据/调试/冲突/运行态专项回归,强制 `TASKS.md` 四段结构与三条最近记录,并约束 Live2D 反混淆 ledger 使用连续单行切片索引、禁止执行流水、单行不超过 520 字且总量不超过 128 KiB。 |
|
| `pnpm run global-review` | 对 KT 子仓库和根治理文件做只读审查:默认深扫当前变更,检查凭据/调试/冲突/运行态专项回归,强制 `TASKS.md` 四段结构与三条最近记录,并约束 Live2D 反混淆 ledger 使用连续单行切片索引、禁止执行流水、单行不超过 520 字且总量不超过 128 KiB。 |
|
||||||
| `pnpm run napcat-upstream-audit` | 默认 dry-run 输出 NapCatQQ 上游 release 审计分类、只读 Git 命令和 artifact 路径;显式 `--execute --use-codex` 才运行 Codex。 |
|
| `pnpm run napcat-upstream-audit` | 默认 dry-run 输出 NapCatQQ 上游 release 审计分类、只读 Git 命令和 artifact 路径;显式 `--execute --use-codex` 才运行 Codex。 |
|
||||||
| `pnpm run napcat-sync-candidate-review` | 输出 sync candidate review 的 prompt/context/只读命令骨架,不执行 Codex 或 Git 写操作。 |
|
| `pnpm run napcat-sync-candidate-review` | 输出 sync candidate review 的 prompt/context/只读命令骨架,不执行 Codex 或 Git 写操作。 |
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import path from 'node:path';
|
|||||||
import { fileURLToPath } from 'node:url';
|
import { fileURLToPath } from 'node:url';
|
||||||
|
|
||||||
interface CliOptions {
|
interface CliOptions {
|
||||||
|
browser: 'chromium' | 'msedge';
|
||||||
headless: boolean;
|
headless: boolean;
|
||||||
password: string;
|
password: string;
|
||||||
screenshotPath: string;
|
screenshotPath: string;
|
||||||
@ -98,8 +99,13 @@ function parseArgs(argv: string[]): CliOptions {
|
|||||||
process.env.KT_ADMIN_LOGIN_SCREENSHOT ||
|
process.env.KT_ADMIN_LOGIN_SCREENSHOT ||
|
||||||
path.join(defaultArtifactDir, 'admin-login.png'),
|
path.join(defaultArtifactDir, 'admin-login.png'),
|
||||||
);
|
);
|
||||||
|
const browser = args.get('browser') || process.env.KT_ADMIN_BROWSER || 'msedge';
|
||||||
|
if (!['chromium', 'msedge'].includes(browser)) {
|
||||||
|
throw new Error(`不支持的浏览器类型: ${browser}`);
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
browser: browser as CliOptions['browser'],
|
||||||
headless: getBooleanArg(
|
headless: getBooleanArg(
|
||||||
args,
|
args,
|
||||||
'headless',
|
'headless',
|
||||||
@ -129,6 +135,7 @@ function printHelp(): void {
|
|||||||
pnpm run admin-login -- --url http://127.0.0.1:5999/#/auth/login
|
pnpm run admin-login -- --url http://127.0.0.1:5999/#/auth/login
|
||||||
|
|
||||||
常用参数:
|
常用参数:
|
||||||
|
--browser <name> 浏览器类型:msedge(默认)或 chromium
|
||||||
--username <name> 默认读取 KT_ADMIN_USERNAME,兜底 admin
|
--username <name> 默认读取 KT_ADMIN_USERNAME,兜底 admin
|
||||||
--password <password> 默认读取 KT_ADMIN_PASSWORD,兜底 123456
|
--password <password> 默认读取 KT_ADMIN_PASSWORD,兜底 123456
|
||||||
--url <url> Admin 登录页 URL
|
--url <url> Admin 登录页 URL
|
||||||
@ -312,6 +319,9 @@ async function assertLoginResponse(response: any | null): Promise<void> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行 Admin 登录并保存可复用的页面验证状态。
|
||||||
|
*/
|
||||||
async function main(): Promise<void> {
|
async function main(): Promise<void> {
|
||||||
const options = parseArgs(process.argv.slice(2));
|
const options = parseArgs(process.argv.slice(2));
|
||||||
const { chromium } = resolvePlaywright(adminRoot);
|
const { chromium } = resolvePlaywright(adminRoot);
|
||||||
@ -319,7 +329,7 @@ async function main(): Promise<void> {
|
|||||||
ensureParentDir(options.screenshotPath);
|
ensureParentDir(options.screenshotPath);
|
||||||
|
|
||||||
const browser = await chromium.launch({
|
const browser = await chromium.launch({
|
||||||
channel: 'msedge',
|
...(options.browser === 'msedge' ? { channel: 'msedge' } : {}),
|
||||||
headless: options.headless,
|
headless: options.headless,
|
||||||
slowMo: options.headless ? 0 : 60,
|
slowMo: options.headless ? 0 : 60,
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user