@zhizai/cli 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,145 @@
1
+ # 智在记录 · 鉴权
2
+
3
+ 负责把“用户想用智在记录”推进到可调业务接口的状态。不要只说“已配置”:Key 非空且至少一次业务调用 `resultCode=0` 才算连接成功。
4
+
5
+ ## 统一结果判定
6
+
7
+ 先看 HTTP:`400`/`401`/`406` → 无权限(检查 `ZHIZAI_REC_API_KEY`)。再看 JSON:`resultCode == "0"` 为成功。
8
+
9
+ ```json
10
+ {
11
+ "resultCode": "0",
12
+ "resultMsg": "success",
13
+ "resultObject": {},
14
+ "stack": "",
15
+ "errorInfos": null,
16
+ "guidance": null
17
+ }
18
+ ```
19
+
20
+ 对用户:可用 `resultMsg` 短句;禁止展示完整 Key、`stack`、未脱敏 `errorInfos`。限流 ≤2 次/秒。
21
+
22
+ `ZHIZAI_BASE_URL` = `https://openapi.zzjilu.com/api/v1`。Header:`Authorization: ${ZHIZAI_REC_API_KEY}`(无 Bearer)。
23
+
24
+
25
+ ## 首次连接闭环
26
+
27
+ 1. 检查智能体/环境中的 `ZHIZAI_REC_API_KEY` 是否已配置且非空。
28
+ 2. 未配置:只提示前往 [智在记录开发者](https://www.zzjilu.com/pc/developer) 获取并配置;不调业务接口。
29
+ 3. 无写入验收:`POST /note/queryNoteList`,`pageNum=1`、`pageSize=1`。成功才可宣布已连接。
30
+ 4. 用户明确要求用口令换 Key 时,才调用 `getApiKeyByPassword`;**禁止**在对话中完整输出口令或返回的 `API-KEY`。
31
+
32
+ ## 意图路由
33
+
34
+ | 意图 | 接口 |
35
+ |---|---|
36
+ | 口令换 API Key | `POST /auth/getApiKeyByPassword` |
37
+ | 解析 token | `GET /auth/analysisToken?token=` |
38
+
39
+ ## 安全与恢复
40
+
41
+ - 不展示或记录完整 `Authorization` / API Key;调试仅掩码。
42
+ - 鉴权失败引导检查环境变量,不回显 Header。
43
+ - `analysisToken` 身份字段按最小必要展示,不回显完整 token。
44
+
45
+ ## 接口协议
46
+
47
+ ### POST `/auth/getApiKeyByPassword` 通过口令获取API-KEY
48
+
49
+ **接口说明**:通过口令获取个人的API-KEY
50
+
51
+ #### 请求参数
52
+
53
+ | 参数名 | 类型 | 必填 | 说明 |
54
+ | --- | --- | --- | --- |
55
+ | phoneNum | String | 是 | 手机号 |
56
+ | password | String | 是 | 口令(管理员提供) |
57
+ | teamId | Long | 是 | 根团队ID |
58
+
59
+ #### 请求示例
60
+
61
+ ```bash
62
+ curl --request POST \
63
+ --url 'https://openapi.zzjilu.com/api/v1/auth/getApiKeyByPassword' \
64
+ --header 'content-type: application/json' \
65
+ --data '{
66
+ "phoneNum": "13900001111",
67
+ "password": "{cipher}{aes}TestPassword1234567890ABCDEF",
68
+ "teamId": 1234567890123456789
69
+ }'
70
+ ```
71
+
72
+ #### 响应参数
73
+
74
+ | 参数名 | 类型 | 必填 | 说明 |
75
+ | --- | --- | --- | --- |
76
+ | resultCode | string | 是 | 结果码,0表示成功 |
77
+ | resultMsg | string | 是 | 结果信息,成功时为success |
78
+ | resultObject | object | 是 | 返回数据对象 |
79
+ | resultObject.API-KEY | string | 是 | 个人API-KEY |
80
+ | resultObject.tokenExpDate | string | 是 | API-KEY失效时间 |
81
+ | stack | string | 是 | 异常堆栈信息 |
82
+ | errorInfos | null | 是 | 错误信息列表 |
83
+ | guidance | null | 是 | 引导信息 |
84
+
85
+ #### 响应示例
86
+
87
+ ```json
88
+ {
89
+ "resultCode": "0",
90
+ "resultMsg": "success",
91
+ "resultObject": {
92
+ "API-KEY": "DemoApiKey1234567890==",
93
+ "tokenExpDate": "2027-12-31 23:59:59"
94
+ },
95
+ "stack": "",
96
+ "errorInfos": null,
97
+ "guidance": null
98
+ }
99
+ ```
100
+
101
+ ### GET `/auth/analysisToken` 解析token
102
+
103
+ **接口说明**:解析token
104
+
105
+ #### 请求参数
106
+
107
+ | 参数名 | 类型 | 必填 | 说明 |
108
+ | --- | --- | --- | --- |
109
+ | token | string | 是 | 用户鉴权令牌 |
110
+
111
+ #### 请求示例
112
+
113
+ ```bash
114
+ curl --request GET \
115
+ --url https://openapi.zzjilu.com/api/v1/auth/analysisToken?token= \
116
+ --header 'Authorization: your api-key'
117
+ ```
118
+
119
+ #### 响应参数
120
+
121
+ | 参数名 | 类型 | 必填 | 说明 |
122
+ | --- | --- | --- | --- |
123
+ | resultCode | string | 是 | 状态码,0 表示成功, 其它均为失败 |
124
+ | resultMsg | string | 是 | 提示信息 |
125
+ | resultObject | object | 是 | 用户登录信息对象 |
126
+ | stack | string | 是 | 异常堆栈信息 |
127
+
128
+ #### 响应示例
129
+
130
+ ```json
131
+ {
132
+ "resultCode": "0",
133
+ "resultMsg": "success",
134
+ "resultObject": {
135
+ "token": null,
136
+ "userId": 8912493637529600,
137
+ "userName": "张三",
138
+ "phoneNo": "13900001111",
139
+ "realName": null,
140
+ "tenantId": null,
141
+ "attributes": null
142
+ },
143
+ "stack": ""
144
+ }
145
+ ```