用途:测试「your project」中受认证保护的路由,适用于验证新 API 端点、改动后回归、调试认证问题、测试 POST/PUT/DELETE 操作以及核对请求与响应数据。
认证方式:项目使用 Keycloak SSO(realm 为 yourRealm)和基于 cookie 的 JWT(非 Bearer 头),cookie 名为 refresh_token,JWT 使用 config.ini 中的密钥签名。
主要测试方式: 1)推荐用 test-auth-route.js 脚本,路径为 /root/git/your project_pre/scripts/test-auth-route.js,会自动从 Keycloak 获取 token、签名并生成 cookie、发起请求,并输出可手动复现的 curl 命令。基本用法: node scripts/test-auth-route.js http://localhost:3000/blog-api/api/endpoint POST 用法示例: node scripts/test-auth-route.js http://localhost:3000/blog-api/777/submit POST '{"responses":{"4577":"13295"},"submissionID":5,"stepInstanceId":"11"}' 2)手动 curl:复制脚本输出的 curl 命令并按需修改,用 -b "refresh_token=<TOKEN>" 携带 cookie。 3)Mock 认证(仅开发):在服务 .env 中设置 MOCK_AUTH=true、MOCK_USER_ID、MOCK_USER_ROLES,请求头使用 X-Mock-Auth/X-Mock-User/X-Mock-Roles。
凭据与端口:脚本内置用户名 testuser、密码 testpassword;Keycloak 地址与 clientId 来自 config.ini。常见服务端口为用户 3000、项目 3001、表单 3002、邮件 3003、上传 5000。完整 URL 由 Base URL + 路由前缀(见各服务 /src/app.ts)+ 路由路径构成。
验证与排查:可通过 MySQL 查询确认数据变更;401 多因 token 过期、cookie 格式错误、JWT 密钥不匹配或 Keycloak 未运行;403 多因角色或权限不足;404 多因 URL 或前缀错误;500 需查看服务日志、Sentry 与请求体校验。相关技能包括 database-verification、error-tracking、workflow-builder、notification-sender。
限制:Mock 认证仅在 NODE_ENV 为 development 或 test 且路由挂载 mockAuth 中间件时生效,生产环境永不生效。资料未说明该技能的具体收费、许可与安装方式。