Kiro 中实现“自动登录获取 Token + 调用本地业务接口“完整指南
Kiro 中实现自动登录获取 Token 调用本地业务接口完整指南一、场景说明在本地开发调试时业务接口通常需要认证 Token 才能访问。每次手动获取 Token 再复制粘贴效率很低。通过 Kiro 的 Steering 文件 Shell 命令执行能力可以实现自动调用认证服务获取 Token从响应中提取 Token带着 Token 请求本地业务接口返回并分析结果整个流程对话式触发无需离开编辑器。注博客https://blog.csdn.net/badao_liumang_qizhi二、核心原理Kiro 本身具备执行 Shell 命令的能力PowerShell / Bash因此可以通过curl或Invoke-WebRequest等命令直接发起 HTTP 请求。关键在于通过Steering 文件将认证流程固化下来让 Kiro 每次自动执行。三、配置步骤3.1 创建 Steering 文件在项目根目录下创建.kiro/steering/local-api-test.md--- inclusion: manual --- # 本地接口测试规范 ## 获取 Token 流程 ### 认证接口 - 地址: POST https://your-auth-server.com/oauth/token - Content-Type: application/x-www-form-urlencoded - Authorization: Basic (client_id:client_password 的 Base64 编码) - client_id: your_client_id - client_password: your_client_password - 请求体(form): grant_typepasswordusernameyour_userpasswordyour_pass ### Token 提取规则 - 从响应 JSON 中提取 access_token 字段 - 有效期: 根据 expires_in 字段判断 ## 业务接口调用规范 ### 基础地址 - http://127.0.0.1:端口号 ### 认证方式 - Header: Authorization: Bearer access_token ## 注意事项 - token 过期后需要重新获取 - 本地项目需要先启动关键配置说明字段含义inclusion: manual手动引入模式在聊天中通过#local-api-test触发inclusion: auto自动模式每次对话都会加载适合全团队通用规范3.2 Steering 文件的三种引入模式# 模式1每次对话自动加载默认无需写 inclusion------# 模式2手动引入在聊天框中用 # 引用文件名触发---inclusion:manual---# 模式3条件引入当匹配的文件被读入上下文时自动激活---inclusion:fileMatchfileMatchPattern:*Controller.java---对于接口测试场景推荐用manual模式需要时才加载。四、通用 PowerShell 调用模板Windows4.1 OAuth2 Password Grant 方式# 1. 构造 Basic Auth$pairclient_id:client_password$bytes[System.Text.Encoding]::UTF8.GetBytes($pair)$base64[Convert]::ToBase64String($bytes)# 2. 获取 Token$authHeaders {AuthorizationBasic$base64Content-Typeapplication/x-www-form-urlencoded}$authBodygrant_typepasswordusernameyour_userpasswordyour_pass$authRespInvoke-WebRequest-Urihttps://your-auth-server.com/oauth/token-Method POST-Headers$authHeaders-Body$authBody-UseBasicParsing$token($authResp.Content|ConvertFrom-Json).access_token# 3. 调用业务接口$apiHeaders {AuthorizationBearer$tokenContent-Typeapplication/json}$body{pageNum:1,pageSize:10}$apiRespInvoke-WebRequest-Urihttp://127.0.0.1:8080/api/your-endpoint-Method POST-Headers$apiHeaders-Body$body-UseBasicParsingWrite-Output$apiResp.Content4.2 从 Set-Cookie 中提取 Token适用于前端登录接口# 1. 调用登录接口$responseInvoke-WebRequest-Urihttps://your-login-server.com/login-Method POST-ContentTypeapplication/json-Body{username:user,password:pass}-UseBasicParsing# 2. 从 Set-Cookie 中正则提取 token$cookies$response.Headers[Set-Cookie]if($cookies-matchyour_token_name([^;])){$token$Matches[1]}# 3. 调用业务接口$apiHeaders {AuthorizationBearer$tokenContent-Typeapplication/json}$apiRespInvoke-WebRequest-Urihttp://127.0.0.1:8080/api/your-endpoint-Method GET-Headers$apiHeaders-UseBasicParsingWrite-Output$apiResp.Content五、通用 Bash 调用模板Linux/Mac/Git Bash#!/bin/bash# 通用接口测试脚本# 配置区域 AUTH_URLhttps://your-auth-server.com/oauth/tokenBASE_URLhttp://127.0.0.1:8080CLIENT_IDyour_client_idCLIENT_PASSWORDyour_client_passwordUSERNAMEyour_userPASSWORDyour_pass# 获取 Token AUTH_RESPONSE$(curl-s-XPOST$AUTH_URL\-HContent-Type: application/x-www-form-urlencoded\-u$CLIENT_ID:$CLIENT_PASSWORD\-dgrant_typepasswordusername$USERNAMEpassword$PASSWORD)TOKEN$(echo$AUTH_RESPONSE|grep-oPaccess_token\s*:\s*\K[^])if[-z$TOKEN];thenecho获取 token 失败;exit1fi# 调用业务接口 METHOD${1:-GET}ENDPOINT$2BODY$3if[-n$BODY];thencurl-s-X$METHOD$BASE_URL$ENDPOINT\-HAuthorization: Bearer$TOKEN\-HContent-Type: application/json\-d$BODYelsecurl-s-X$METHOD$BASE_URL$ENDPOINT\-HAuthorization: Bearer$TOKEN\-HContent-Type: application/jsonfi使用方式bashapi-test.sh GET /api/usersbashapi-test.sh POST /api/users{name:test}六、使用方式方式一对话式调用推荐日常使用在 Kiro 聊天框中输入#local-api-test引入 Steering 上下文然后直接说帮我调一下 POST /api/users/list请求体是 {“pageNum”:1,“pageSize”:5}Kiro 会自动执行完整的 Token 获取 接口调用流程。方式二脚本执行将脚本放在scripts/目录下让 Kiro 直接运行帮我执行 scripts/api-test.sh POST /api/users/list ‘{“pageNum”:1,“pageSize”:5}’方式三Hook 自动化高级创建.kiro/hooks/test-after-task.json在每次任务完成后自动调接口验证{name:任务完成后接口验证,version:1.0.0,when:{type:postTaskExecution},then:{type:askAgent,prompt:请按照 #local-api-test 规范调用相关接口验证本次修改是否生效}}七、常见问题排查问题原因解决方案401 UnauthorizedToken 签名方式与服务端不匹配确认服务端的 JWT 验签方式RSA / HMAC使用对应的认证服务获取 TokenCannot convert access token to JSONToken 格式错误服务端期望不同签名的 JWT检查 application.yml 中security.jwt.signing-key确认 Token 来源正确连接拒绝本地服务未启动先启动项目再测试Token 过期超过有效期重新获取即可Kiro 每次调用都会重新获取PowerShell 执行策略限制系统禁止运行 .ps1 脚本使用powershell -ExecutionPolicy Bypass -File script.ps1中文乱码PowerShell 默认编码问题响应数据正常显示层编码问题不影响使用八、关键经验总结分清 Token 类型前端页面的登录 Token通常在 Cookie 中HMAC 签名和后端服务间的 OAuth2 Token通常用 RSA 签名往往不是同一个。本地服务验证的是哪种就要用对应方式获取。Steering 文件是核心把认证地址、账号、提取规则写清楚Kiro 就能自动执行完整流程不需要每次重复说明。Windows 环境注意事项优先使用 PowerShell 的Invoke-WebRequest避免curl在 Windows 下的转义问题.ps1脚本执行需要绕过执行策略。安全提示Steering 文件中的账号密码会存储在项目目录中如果是多人协作项目建议将.kiro/steering/local-api-test.md加入.gitignore或使用环境变量替代明文密码。