用途:该技能提供在项目中测试受认证保护路由的模式,认证方式为基于 Cookie 的 JWT,而非 Bearer 头。适用于测试新 API 端点、修改后验证路由功能、调试认证问题、测试 POST/PUT/DELETE 操作及校验请求/响应数据。
认证概述:使用 Keycloak 做 SSO,realm 为 yourRealm;令牌以 Cookie 形式传递,Cookie 名 refresh_token;JWT 签名使用 config.ini 中的密钥。
主要用法:推荐使用 test-auth-route.js 脚本,它自动完成获取 refresh token、用 JWT 密钥签名、构造 Cookie 头并发起请求,还会输出可手动复现的 curl 命令。运行示例:node scripts/test-auth-route.js http://localhost:3000/blog-api/api/endpoint。POST 请求可追加方法与 JSON 数据,例如:node scripts/test-auth-route.js http://localhost:3000/blog-api/777/submit POST '{"responses":{"4577":"13295"},"submissionID":5,"stepInstanceId":"11"}'。也可复制脚本输出的 curl 命令手动测试。开发环境可用 Mock 认证绕过 Keycloak,需在 .env 设置 MOCK_AUTH=true 等,且仅当 NODE_ENV 为 development 或 test 时生效,生产环境永不生效。
常见场景:表单提交、工作流启动与步骤完成、带查询参数的 GET、文件上传,以及测试后通过 MySQL 校验数据变更。
限制与注意:脚本硬编码测试凭据,Keycloak 地址、realm、client ID 来自各处 config.ini;需注意端口与路由前缀,完整 URL = 基础地址 + 前缀 + 路由路径。脚本输出较啰嗦,需从中找出实际响应。401 常见原因包括令牌过期、Cookie 格式错误、JWT 密钥不匹配或 Keycloak 未运行;403 通常为角色或权限不足;404 多因 URL 或前缀错误;500 需查服务日志与数据库连接。