neo-cmp-cli 1.7.7 → 1.7.8
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.
- package/README.md +15 -14
- package/package.json +1 -1
- package/src/config/auth.config.js +5 -3
- package/src/neo/neoLogin.js +29 -48
- package/src/template/antd-custom-cmp-template/README.md +88 -6
- package/src/template/echarts-custom-cmp-template/README.md +89 -6
- package/src/template/empty-custom-cmp-template/README.md +89 -6
- package/src/template/neo-custom-cmp-template/README.md +90 -7
- package/src/template/react-custom-cmp-template/README.md +89 -6
- package/src/template/react-ts-custom-cmp-template/README.md +89 -6
- package/src/template/vue2-custom-cmp-template/README.md +18 -9
package/README.md
CHANGED
|
@@ -128,7 +128,7 @@ neo push cmp
|
|
|
128
128
|
|
|
129
129
|
### 方式一:OAuth2 登录授权(推荐)
|
|
130
130
|
|
|
131
|
-
OAuth2
|
|
131
|
+
OAuth2 授权码模式更加安全可靠,无需用户配置账户名和密码。
|
|
132
132
|
|
|
133
133
|
#### 使用步骤
|
|
134
134
|
|
|
@@ -139,9 +139,9 @@ OAuth2 授权码模式更加安全可靠,且支持 token 自动刷新。
|
|
|
139
139
|
|
|
140
140
|
执行流程:
|
|
141
141
|
- 自动打开浏览器访问授权页面
|
|
142
|
-
- 在浏览器中输入 NeoCRM
|
|
143
|
-
-
|
|
144
|
-
- Token
|
|
142
|
+
- 在浏览器中输入 NeoCRM 账号密码进行登录(需选择对应的租户)
|
|
143
|
+
- 授权成功后自动跳转回本地(附带 code)
|
|
144
|
+
- cli 端 通过 code 获取 Token,并自动保存到项目的 `.neo-cli/token.json` 文件中
|
|
145
145
|
|
|
146
146
|
2. **登出 NeoCRM 平台**
|
|
147
147
|
```bash
|
|
@@ -179,16 +179,8 @@ A: 命令行会输出授权 URL,手动复制到浏览器中打开即可。
|
|
|
179
179
|
**Q2: Token 刷新失败怎么办?**
|
|
180
180
|
A: 如果 refresh_token 也过期(默认 30 天),需要重新执行 `neo login`。同时检查网络连接是否正常。
|
|
181
181
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
| 特性 | OAuth2 授权码模式 | 密码模式 |
|
|
185
|
-
|------|------------------|---------|
|
|
186
|
-
| 安全性 | ✅ 高(无需在配置文件中存储密码) | ⚠️ 较低(需要配置密码和安全令牌) |
|
|
187
|
-
| Token 刷新 | ✅ 自动刷新 | ✅ 自动刷新 |
|
|
188
|
-
| 有效期 | 2 小时(可自动刷新) | 2 小时(可自动刷新) |
|
|
189
|
-
| 推荐程度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
190
|
-
|
|
191
|
-
> **建议**:优先使用 OAuth2 授权码模式(`neo login`),更加安全便捷。
|
|
182
|
+
**Q3: 授权登录后没有正常跳回 redirect_uri**
|
|
183
|
+
A: 可能被浏览器安装的插件影响,目前已知会影响授权登录的浏览器插件有:Neo UI Extension,请关闭插件后重试。
|
|
192
184
|
|
|
193
185
|
### 方式二:密码授权配置
|
|
194
186
|
|
|
@@ -225,6 +217,15 @@ module.exports = {
|
|
|
225
217
|
- 按照文档说明获取 8 位安全令牌
|
|
226
218
|
- `password` 字段 = 用户账户密码 + 8 位安全令牌(直接拼接,无空格或分隔符)
|
|
227
219
|
|
|
220
|
+
### OAuth2 模式 vs 密码模式
|
|
221
|
+
|
|
222
|
+
| 特性 | OAuth2 授权码模式 | 密码模式 |
|
|
223
|
+
|------|------------------|---------|
|
|
224
|
+
| 安全性 | ✅ 高(无需在配置文件中存储密码) | ⚠️ 较低(需要配置密码和安全令牌) |
|
|
225
|
+
| Token 刷新 | ✅ 自动刷新 | ✅ 自动刷新 |
|
|
226
|
+
| 有效期 | 2 小时(可自动刷新) | 永不过期 |
|
|
227
|
+
| 推荐程度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
228
|
+
|
|
228
229
|
---
|
|
229
230
|
|
|
230
231
|
## 📖 开发指南
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const curConfig = require('../config/index'); // 获取当前项目根目录下的配置文件
|
|
2
2
|
|
|
3
3
|
const neoConfig = curConfig.neoConfig || {};
|
|
4
|
-
const authConfig = neoConfig.auth || {};
|
|
4
|
+
// const authConfig = neoConfig.auth || {};
|
|
5
5
|
|
|
6
6
|
// NeoCRM 跨 Pod 授权配置
|
|
7
7
|
module.exports = {
|
|
@@ -14,12 +14,14 @@ module.exports = {
|
|
|
14
14
|
},
|
|
15
15
|
// 获取 授权码 相关配置
|
|
16
16
|
response_type: 'code', // 认证类型;此参数值必须为 code
|
|
17
|
-
client_id: authConfig.client_id || '04c8b45c4dbe36426a660bf70d3fe3e7', // 客户端 ID,跨 Pod 级链接器【内置】
|
|
17
|
+
// client_id: authConfig.client_id || '04c8b45c4dbe36426a660bf70d3fe3e7', // 客户端 ID,跨 Pod 级链接器【内置】
|
|
18
|
+
client_id: '04c8b45c4dbe36426a660bf70d3fe3e7', // 客户端 ID,跨 Pod 级链接器【内置】
|
|
18
19
|
scope: 'all', // 固定值:all
|
|
19
20
|
oauthType: 'standard', // 固定值:standard
|
|
20
21
|
access_type: 'offline', // 此参数值为 online 时,不产生 refresh_token ;此参数值为 offline 时,返回refresh_token
|
|
21
22
|
|
|
22
23
|
// 获取 令牌 相关配置
|
|
23
|
-
client_secret: authConfig.client_secret || '370817d1336a3737f95c671eea39a23b', // 客户端秘钥,跨 Pod 级链接器【内置】
|
|
24
|
+
// client_secret: authConfig.client_secret || '370817d1336a3737f95c671eea39a23b', // 客户端秘钥,跨 Pod 级链接器【内置】
|
|
25
|
+
client_secret: '370817d1336a3737f95c671eea39a23b', // 客户端秘钥,跨 Pod 级链接器【内置】
|
|
24
26
|
grant_type: 'authorization_code' // 授权类型;此参数值必须为 authorization_code
|
|
25
27
|
};
|
package/src/neo/neoLogin.js
CHANGED
|
@@ -144,52 +144,13 @@ class NeoLoginService {
|
|
|
144
144
|
/**
|
|
145
145
|
* 打开浏览器访问授权 URL
|
|
146
146
|
* @param {string} authUrl 授权 URL
|
|
147
|
-
* @param {boolean} incognito 是否使用无痕模式,默认为 true
|
|
148
147
|
*/
|
|
149
|
-
async openBrowser(authUrl
|
|
148
|
+
async openBrowser(authUrl) {
|
|
150
149
|
try {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
if (incognito) {
|
|
154
|
-
const platform = process.platform;
|
|
155
|
-
|
|
156
|
-
// 根据不同平台和浏览器设置无痕模式参数
|
|
157
|
-
if (platform === 'darwin') {
|
|
158
|
-
// macOS: 优先使用 Chrome,其次 Safari
|
|
159
|
-
options.app = {
|
|
160
|
-
name: 'google chrome',
|
|
161
|
-
arguments: ['--incognito']
|
|
162
|
-
};
|
|
163
|
-
} else if (platform === 'win32') {
|
|
164
|
-
// Windows: 优先使用 Chrome,其次 Edge
|
|
165
|
-
options.app = {
|
|
166
|
-
name: 'chrome',
|
|
167
|
-
arguments: ['--incognito']
|
|
168
|
-
};
|
|
169
|
-
} else {
|
|
170
|
-
// Linux 或其他平台
|
|
171
|
-
options.app = {
|
|
172
|
-
name: 'google-chrome',
|
|
173
|
-
arguments: ['--incognito']
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
await open(authUrl, options);
|
|
150
|
+
await open(authUrl);
|
|
179
151
|
} catch (error) {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
try {
|
|
183
|
-
console.log('无法使用无痕模式打开指定浏览器,尝试使用默认浏览器...');
|
|
184
|
-
await open(authUrl);
|
|
185
|
-
} catch (fallbackError) {
|
|
186
|
-
errorLog(`无法自动打开浏览器: ${fallbackError.message}`);
|
|
187
|
-
console.log(`\n请手动访问以下 URL 进行授权:\n${authUrl}\n`);
|
|
188
|
-
}
|
|
189
|
-
} else {
|
|
190
|
-
errorLog(`无法自动打开浏览器: ${error.message}`);
|
|
191
|
-
console.log(`\n请手动访问以下 URL 进行授权:\n${authUrl}\n`);
|
|
192
|
-
}
|
|
152
|
+
errorLog(`无法自动打开浏览器: ${error.message}`);
|
|
153
|
+
console.log(`\n请手动访问以下 URL 进行授权:\n${authUrl}\n`);
|
|
193
154
|
}
|
|
194
155
|
}
|
|
195
156
|
|
|
@@ -271,11 +232,31 @@ class NeoLoginService {
|
|
|
271
232
|
res.writeHead(400, { 'Content-Type': 'text/html; charset=utf-8' });
|
|
272
233
|
res.end(`
|
|
273
234
|
<html>
|
|
274
|
-
<head
|
|
235
|
+
<head>
|
|
236
|
+
<title>授权失败</title>
|
|
237
|
+
<style>
|
|
238
|
+
.container {
|
|
239
|
+
margin: 30px auto;
|
|
240
|
+
padding-top: 30px;
|
|
241
|
+
text-align: center;
|
|
242
|
+
|
|
243
|
+
.error-title {
|
|
244
|
+
color: red;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
h1, p {
|
|
248
|
+
text-align: center;
|
|
249
|
+
margin-top: 10px;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
</style>
|
|
253
|
+
</head>
|
|
275
254
|
<body>
|
|
276
|
-
<
|
|
277
|
-
|
|
278
|
-
|
|
255
|
+
<div class="container">
|
|
256
|
+
<h1 class="error-title">授权失败</h1>
|
|
257
|
+
<img src="https://custom-widgets.bj.bcebos.com/neocrmlogin.png" alt="授权失败" />
|
|
258
|
+
<p>错误信息: ${error}</p>
|
|
259
|
+
</div>
|
|
279
260
|
</body>
|
|
280
261
|
</html>
|
|
281
262
|
`);
|
|
@@ -291,7 +272,7 @@ class NeoLoginService {
|
|
|
291
272
|
<head>
|
|
292
273
|
<title>授权成功</title>
|
|
293
274
|
<style>
|
|
294
|
-
container {
|
|
275
|
+
.container {
|
|
295
276
|
margin: 30px auto;
|
|
296
277
|
padding-top: 30px;
|
|
297
278
|
text-align: center;
|
|
@@ -43,12 +43,75 @@ $ npm run linkDebug
|
|
|
43
43
|
$ npm run pushCmp
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
### 🔐 授权配置
|
|
47
|
+
|
|
48
|
+
使用 `neo push cmp`、`neo pull cmp`、`neo delete cmp` 等命令与 NeoCRM 平台交互时,需要配置授权信息。
|
|
49
|
+
|
|
50
|
+
#### 方式一:OAuth2 登录授权(推荐)
|
|
51
|
+
|
|
52
|
+
OAuth2 授权码模式更加安全可靠,无需用户配置账户名和密码。
|
|
53
|
+
|
|
54
|
+
##### 使用步骤
|
|
55
|
+
|
|
56
|
+
1. **登录 NeoCRM 平台**
|
|
57
|
+
```bash
|
|
58
|
+
neo login
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
执行流程:
|
|
62
|
+
- 自动打开浏览器访问授权页面
|
|
63
|
+
- 在浏览器中输入 NeoCRM 账号密码进行登录(需选择对应的租户)
|
|
64
|
+
- 授权成功后自动跳转回本地(附带 code)
|
|
65
|
+
- cli 端 通过 code 获取 Token,并自动保存到项目的 `.neo-cli/token.json` 文件中
|
|
66
|
+
|
|
67
|
+
2. **登出 NeoCRM 平台**
|
|
68
|
+
```bash
|
|
69
|
+
neo logout
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
功能:清除本地保存的 token 文件,下次使用需要重新登录。
|
|
73
|
+
|
|
74
|
+
##### 配置示例
|
|
75
|
+
|
|
76
|
+
```javascript
|
|
77
|
+
// neo.config.js
|
|
78
|
+
module.exports = {
|
|
79
|
+
neoConfig: {
|
|
80
|
+
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
81
|
+
// 登录授权 URL(用于获取 code)
|
|
82
|
+
loginURL: 'https://login-cd.xiaoshouyi.com/auc/oauth2/auth',
|
|
83
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
84
|
+
},
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
##### Token 有效期
|
|
89
|
+
|
|
90
|
+
- **access_token**:默认有效期 2 小时
|
|
91
|
+
- **refresh_token**:默认有效期 30 天
|
|
92
|
+
- 系统会在 access_token 过期前 5 分钟自动刷新
|
|
93
|
+
- 如果 refresh_token 也过期,需要重新执行 `neo login`
|
|
94
|
+
|
|
95
|
+
##### 常见问题
|
|
96
|
+
|
|
97
|
+
**Q1: 浏览器无法自动打开怎么办?**
|
|
98
|
+
A: 命令行会输出授权 URL,手动复制到浏览器中打开即可。
|
|
99
|
+
|
|
100
|
+
**Q2: Token 刷新失败怎么办?**
|
|
101
|
+
A: 如果 refresh_token 也过期(默认 30 天),需要重新执行 `neo login`。同时检查网络连接是否正常。
|
|
102
|
+
|
|
103
|
+
**Q3: 授权登录后没有正常跳回 redirect_uri**
|
|
104
|
+
A: 可能被浏览器安装的插件影响,目前已知会影响授权登录的浏览器插件有:Neo UI Extension,请关闭插件后重试。
|
|
105
|
+
|
|
106
|
+
#### 方式二:密码授权配置
|
|
107
|
+
|
|
108
|
+
在项目根目录的 `neo.config.js` 文件中添加 NeoCRM 平台授权配置:
|
|
109
|
+
|
|
47
110
|
```javascript
|
|
48
111
|
module.exports = {
|
|
49
112
|
neoConfig: {
|
|
50
113
|
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
51
|
-
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token
|
|
114
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
52
115
|
// NeoCRM 授权配置
|
|
53
116
|
auth: {
|
|
54
117
|
client_id: 'xx', // 客户端 ID,从创建连接器的客户端信息中获取(Client_Id)
|
|
@@ -63,9 +126,28 @@ module.exports = {
|
|
|
63
126
|
},
|
|
64
127
|
}
|
|
65
128
|
```
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
129
|
+
|
|
130
|
+
##### 授权配置获取方式
|
|
131
|
+
|
|
132
|
+
1. **客户端 ID 和客户端秘钥**:需通过创建连接器获取
|
|
133
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / 创建连接器
|
|
134
|
+
- 创建连接器后,从客户端信息中获取 `Client_Id` 和 `Client_Secret`
|
|
135
|
+
|
|
136
|
+
2. **安全令牌**:如何获取安全令牌
|
|
137
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / OAuth安全认证 / 密码模式 / 获取令牌
|
|
138
|
+
- 按照文档说明获取 8 位安全令牌
|
|
139
|
+
- `password` 字段 = 用户账户密码 + 8 位安全令牌(直接拼接,无空格或分隔符)
|
|
140
|
+
|
|
141
|
+
#### OAuth2 模式 vs 密码模式
|
|
142
|
+
|
|
143
|
+
| 特性 | OAuth2 授权码模式 | 密码模式 |
|
|
144
|
+
|------|------------------|---------|
|
|
145
|
+
| 安全性 | ✅ 高(无需在配置文件中存储密码) | ⚠️ 较低(需要配置密码和安全令牌) |
|
|
146
|
+
| Token 刷新 | ✅ 自动刷新 | ✅ 自动刷新 |
|
|
147
|
+
| 有效期 | 2 小时(可自动刷新) | 永不过期 |
|
|
148
|
+
| 推荐程度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
149
|
+
|
|
150
|
+
---
|
|
69
151
|
|
|
70
152
|
### 配置项说明(neo-cmp-cli)
|
|
71
|
-
[请查看neo-cmp-cli](https://
|
|
153
|
+
[请查看neo-cmp-cli](https://www.npmjs.com/package/neo-cmp-cli)
|
|
@@ -87,12 +87,76 @@ $ npm run linkDebug
|
|
|
87
87
|
$ npm run pushCmp
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
|
|
91
|
+
### 🔐 授权配置
|
|
92
|
+
|
|
93
|
+
使用 `neo push cmp`、`neo pull cmp`、`neo delete cmp` 等命令与 NeoCRM 平台交互时,需要配置授权信息。
|
|
94
|
+
|
|
95
|
+
#### 方式一:OAuth2 登录授权(推荐)
|
|
96
|
+
|
|
97
|
+
OAuth2 授权码模式更加安全可靠,无需用户配置账户名和密码。
|
|
98
|
+
|
|
99
|
+
##### 使用步骤
|
|
100
|
+
|
|
101
|
+
1. **登录 NeoCRM 平台**
|
|
102
|
+
```bash
|
|
103
|
+
neo login
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
执行流程:
|
|
107
|
+
- 自动打开浏览器访问授权页面
|
|
108
|
+
- 在浏览器中输入 NeoCRM 账号密码进行登录(需选择对应的租户)
|
|
109
|
+
- 授权成功后自动跳转回本地(附带 code)
|
|
110
|
+
- cli 端 通过 code 获取 Token,并自动保存到项目的 `.neo-cli/token.json` 文件中
|
|
111
|
+
|
|
112
|
+
2. **登出 NeoCRM 平台**
|
|
113
|
+
```bash
|
|
114
|
+
neo logout
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
功能:清除本地保存的 token 文件,下次使用需要重新登录。
|
|
118
|
+
|
|
119
|
+
##### 配置示例
|
|
120
|
+
|
|
91
121
|
```javascript
|
|
122
|
+
// neo.config.js
|
|
92
123
|
module.exports = {
|
|
93
124
|
neoConfig: {
|
|
94
125
|
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
95
|
-
|
|
126
|
+
// 登录授权 URL(用于获取 code)
|
|
127
|
+
loginURL: 'https://login-cd.xiaoshouyi.com/auc/oauth2/auth',
|
|
128
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
129
|
+
},
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
##### Token 有效期
|
|
134
|
+
|
|
135
|
+
- **access_token**:默认有效期 2 小时
|
|
136
|
+
- **refresh_token**:默认有效期 30 天
|
|
137
|
+
- 系统会在 access_token 过期前 5 分钟自动刷新
|
|
138
|
+
- 如果 refresh_token 也过期,需要重新执行 `neo login`
|
|
139
|
+
|
|
140
|
+
##### 常见问题
|
|
141
|
+
|
|
142
|
+
**Q1: 浏览器无法自动打开怎么办?**
|
|
143
|
+
A: 命令行会输出授权 URL,手动复制到浏览器中打开即可。
|
|
144
|
+
|
|
145
|
+
**Q2: Token 刷新失败怎么办?**
|
|
146
|
+
A: 如果 refresh_token 也过期(默认 30 天),需要重新执行 `neo login`。同时检查网络连接是否正常。
|
|
147
|
+
|
|
148
|
+
**Q3: 授权登录后没有正常跳回 redirect_uri**
|
|
149
|
+
A: 可能被浏览器安装的插件影响,目前已知会影响授权登录的浏览器插件有:Neo UI Extension,请关闭插件后重试。
|
|
150
|
+
|
|
151
|
+
#### 方式二:密码授权配置
|
|
152
|
+
|
|
153
|
+
在项目根目录的 `neo.config.js` 文件中添加 NeoCRM 平台授权配置:
|
|
154
|
+
|
|
155
|
+
```javascript
|
|
156
|
+
module.exports = {
|
|
157
|
+
neoConfig: {
|
|
158
|
+
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
159
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
96
160
|
// NeoCRM 授权配置
|
|
97
161
|
auth: {
|
|
98
162
|
client_id: 'xx', // 客户端 ID,从创建连接器的客户端信息中获取(Client_Id)
|
|
@@ -107,9 +171,28 @@ module.exports = {
|
|
|
107
171
|
},
|
|
108
172
|
}
|
|
109
173
|
```
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
174
|
+
|
|
175
|
+
##### 授权配置获取方式
|
|
176
|
+
|
|
177
|
+
1. **客户端 ID 和客户端秘钥**:需通过创建连接器获取
|
|
178
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / 创建连接器
|
|
179
|
+
- 创建连接器后,从客户端信息中获取 `Client_Id` 和 `Client_Secret`
|
|
180
|
+
|
|
181
|
+
2. **安全令牌**:如何获取安全令牌
|
|
182
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / OAuth安全认证 / 密码模式 / 获取令牌
|
|
183
|
+
- 按照文档说明获取 8 位安全令牌
|
|
184
|
+
- `password` 字段 = 用户账户密码 + 8 位安全令牌(直接拼接,无空格或分隔符)
|
|
185
|
+
|
|
186
|
+
#### OAuth2 模式 vs 密码模式
|
|
187
|
+
|
|
188
|
+
| 特性 | OAuth2 授权码模式 | 密码模式 |
|
|
189
|
+
|------|------------------|---------|
|
|
190
|
+
| 安全性 | ✅ 高(无需在配置文件中存储密码) | ⚠️ 较低(需要配置密码和安全令牌) |
|
|
191
|
+
| Token 刷新 | ✅ 自动刷新 | ✅ 自动刷新 |
|
|
192
|
+
| 有效期 | 2 小时(可自动刷新) | 永不过期 |
|
|
193
|
+
| 推荐程度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
194
|
+
|
|
195
|
+
---
|
|
113
196
|
|
|
114
197
|
### 配置项说明(neo-cmp-cli)
|
|
115
|
-
[请查看neo-cmp-cli](https://
|
|
198
|
+
[请查看neo-cmp-cli](https://www.npmjs.com/package/neo-cmp-cli)
|
|
@@ -43,12 +43,76 @@ $ npm run linkDebug
|
|
|
43
43
|
$ npm run pushCmp
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
|
|
47
|
+
### 🔐 授权配置
|
|
48
|
+
|
|
49
|
+
使用 `neo push cmp`、`neo pull cmp`、`neo delete cmp` 等命令与 NeoCRM 平台交互时,需要配置授权信息。
|
|
50
|
+
|
|
51
|
+
#### 方式一:OAuth2 登录授权(推荐)
|
|
52
|
+
|
|
53
|
+
OAuth2 授权码模式更加安全可靠,无需用户配置账户名和密码。
|
|
54
|
+
|
|
55
|
+
##### 使用步骤
|
|
56
|
+
|
|
57
|
+
1. **登录 NeoCRM 平台**
|
|
58
|
+
```bash
|
|
59
|
+
neo login
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
执行流程:
|
|
63
|
+
- 自动打开浏览器访问授权页面
|
|
64
|
+
- 在浏览器中输入 NeoCRM 账号密码进行登录(需选择对应的租户)
|
|
65
|
+
- 授权成功后自动跳转回本地(附带 code)
|
|
66
|
+
- cli 端 通过 code 获取 Token,并自动保存到项目的 `.neo-cli/token.json` 文件中
|
|
67
|
+
|
|
68
|
+
2. **登出 NeoCRM 平台**
|
|
69
|
+
```bash
|
|
70
|
+
neo logout
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
功能:清除本地保存的 token 文件,下次使用需要重新登录。
|
|
74
|
+
|
|
75
|
+
##### 配置示例
|
|
76
|
+
|
|
47
77
|
```javascript
|
|
78
|
+
// neo.config.js
|
|
48
79
|
module.exports = {
|
|
49
80
|
neoConfig: {
|
|
50
81
|
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
51
|
-
|
|
82
|
+
// 登录授权 URL(用于获取 code)
|
|
83
|
+
loginURL: 'https://login-cd.xiaoshouyi.com/auc/oauth2/auth',
|
|
84
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
85
|
+
},
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
##### Token 有效期
|
|
90
|
+
|
|
91
|
+
- **access_token**:默认有效期 2 小时
|
|
92
|
+
- **refresh_token**:默认有效期 30 天
|
|
93
|
+
- 系统会在 access_token 过期前 5 分钟自动刷新
|
|
94
|
+
- 如果 refresh_token 也过期,需要重新执行 `neo login`
|
|
95
|
+
|
|
96
|
+
##### 常见问题
|
|
97
|
+
|
|
98
|
+
**Q1: 浏览器无法自动打开怎么办?**
|
|
99
|
+
A: 命令行会输出授权 URL,手动复制到浏览器中打开即可。
|
|
100
|
+
|
|
101
|
+
**Q2: Token 刷新失败怎么办?**
|
|
102
|
+
A: 如果 refresh_token 也过期(默认 30 天),需要重新执行 `neo login`。同时检查网络连接是否正常。
|
|
103
|
+
|
|
104
|
+
**Q3: 授权登录后没有正常跳回 redirect_uri**
|
|
105
|
+
A: 可能被浏览器安装的插件影响,目前已知会影响授权登录的浏览器插件有:Neo UI Extension,请关闭插件后重试。
|
|
106
|
+
|
|
107
|
+
#### 方式二:密码授权配置
|
|
108
|
+
|
|
109
|
+
在项目根目录的 `neo.config.js` 文件中添加 NeoCRM 平台授权配置:
|
|
110
|
+
|
|
111
|
+
```javascript
|
|
112
|
+
module.exports = {
|
|
113
|
+
neoConfig: {
|
|
114
|
+
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
115
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
52
116
|
// NeoCRM 授权配置
|
|
53
117
|
auth: {
|
|
54
118
|
client_id: 'xx', // 客户端 ID,从创建连接器的客户端信息中获取(Client_Id)
|
|
@@ -63,9 +127,28 @@ module.exports = {
|
|
|
63
127
|
},
|
|
64
128
|
}
|
|
65
129
|
```
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
130
|
+
|
|
131
|
+
##### 授权配置获取方式
|
|
132
|
+
|
|
133
|
+
1. **客户端 ID 和客户端秘钥**:需通过创建连接器获取
|
|
134
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / 创建连接器
|
|
135
|
+
- 创建连接器后,从客户端信息中获取 `Client_Id` 和 `Client_Secret`
|
|
136
|
+
|
|
137
|
+
2. **安全令牌**:如何获取安全令牌
|
|
138
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / OAuth安全认证 / 密码模式 / 获取令牌
|
|
139
|
+
- 按照文档说明获取 8 位安全令牌
|
|
140
|
+
- `password` 字段 = 用户账户密码 + 8 位安全令牌(直接拼接,无空格或分隔符)
|
|
141
|
+
|
|
142
|
+
#### OAuth2 模式 vs 密码模式
|
|
143
|
+
|
|
144
|
+
| 特性 | OAuth2 授权码模式 | 密码模式 |
|
|
145
|
+
|------|------------------|---------|
|
|
146
|
+
| 安全性 | ✅ 高(无需在配置文件中存储密码) | ⚠️ 较低(需要配置密码和安全令牌) |
|
|
147
|
+
| Token 刷新 | ✅ 自动刷新 | ✅ 自动刷新 |
|
|
148
|
+
| 有效期 | 2 小时(可自动刷新) | 永不过期 |
|
|
149
|
+
| 推荐程度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
150
|
+
|
|
151
|
+
---
|
|
69
152
|
|
|
70
153
|
### 配置项说明(neo-cmp-cli)
|
|
71
|
-
[请查看neo-cmp-cli](https://
|
|
154
|
+
[请查看neo-cmp-cli](https://www.npmjs.com/package/neo-cmp-cli)
|
|
@@ -44,12 +44,76 @@ $ npm run linkDebug
|
|
|
44
44
|
$ npm run pushCmp
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
|
|
48
|
+
### 🔐 授权配置
|
|
49
|
+
|
|
50
|
+
使用 `neo push cmp`、`neo pull cmp`、`neo delete cmp` 等命令与 NeoCRM 平台交互时,需要配置授权信息。
|
|
51
|
+
|
|
52
|
+
#### 方式一:OAuth2 登录授权(推荐)
|
|
53
|
+
|
|
54
|
+
OAuth2 授权码模式更加安全可靠,无需用户配置账户名和密码。
|
|
55
|
+
|
|
56
|
+
##### 使用步骤
|
|
57
|
+
|
|
58
|
+
1. **登录 NeoCRM 平台**
|
|
59
|
+
```bash
|
|
60
|
+
neo login
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
执行流程:
|
|
64
|
+
- 自动打开浏览器访问授权页面
|
|
65
|
+
- 在浏览器中输入 NeoCRM 账号密码进行登录(需选择对应的租户)
|
|
66
|
+
- 授权成功后自动跳转回本地(附带 code)
|
|
67
|
+
- cli 端 通过 code 获取 Token,并自动保存到项目的 `.neo-cli/token.json` 文件中
|
|
68
|
+
|
|
69
|
+
2. **登出 NeoCRM 平台**
|
|
70
|
+
```bash
|
|
71
|
+
neo logout
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
功能:清除本地保存的 token 文件,下次使用需要重新登录。
|
|
75
|
+
|
|
76
|
+
##### 配置示例
|
|
77
|
+
|
|
48
78
|
```javascript
|
|
79
|
+
// neo.config.js
|
|
49
80
|
module.exports = {
|
|
50
81
|
neoConfig: {
|
|
51
82
|
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
52
|
-
|
|
83
|
+
// 登录授权 URL(用于获取 code)
|
|
84
|
+
loginURL: 'https://login-cd.xiaoshouyi.com/auc/oauth2/auth',
|
|
85
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
86
|
+
},
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
##### Token 有效期
|
|
91
|
+
|
|
92
|
+
- **access_token**:默认有效期 2 小时
|
|
93
|
+
- **refresh_token**:默认有效期 30 天
|
|
94
|
+
- 系统会在 access_token 过期前 5 分钟自动刷新
|
|
95
|
+
- 如果 refresh_token 也过期,需要重新执行 `neo login`
|
|
96
|
+
|
|
97
|
+
##### 常见问题
|
|
98
|
+
|
|
99
|
+
**Q1: 浏览器无法自动打开怎么办?**
|
|
100
|
+
A: 命令行会输出授权 URL,手动复制到浏览器中打开即可。
|
|
101
|
+
|
|
102
|
+
**Q2: Token 刷新失败怎么办?**
|
|
103
|
+
A: 如果 refresh_token 也过期(默认 30 天),需要重新执行 `neo login`。同时检查网络连接是否正常。
|
|
104
|
+
|
|
105
|
+
**Q3: 授权登录后没有正常跳回 redirect_uri**
|
|
106
|
+
A: 可能被浏览器安装的插件影响,目前已知会影响授权登录的浏览器插件有:Neo UI Extension,请关闭插件后重试。
|
|
107
|
+
|
|
108
|
+
#### 方式二:密码授权配置
|
|
109
|
+
|
|
110
|
+
在项目根目录的 `neo.config.js` 文件中添加 NeoCRM 平台授权配置:
|
|
111
|
+
|
|
112
|
+
```javascript
|
|
113
|
+
module.exports = {
|
|
114
|
+
neoConfig: {
|
|
115
|
+
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
116
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
53
117
|
// NeoCRM 授权配置
|
|
54
118
|
auth: {
|
|
55
119
|
client_id: 'xx', // 客户端 ID,从创建连接器的客户端信息中获取(Client_Id)
|
|
@@ -64,9 +128,28 @@ module.exports = {
|
|
|
64
128
|
},
|
|
65
129
|
}
|
|
66
130
|
```
|
|
67
|
-
1、客户端 ID 和 客户端秘钥 需通过 创建连接器 获取,获取方式见:[https://doc.xiaoshouyi.com](https://doc.xiaoshouyi.com) / 创建连接器;
|
|
68
|
-
2、如何获取 安全令牌 见:[https://doc.xiaoshouyi.com](https://doc.xiaoshouyi.com) / OAuth安全认证 / 密码模式 / 获取令牌;
|
|
69
|
-
3、发布成功后即可在 NeoCRM 对应租户环境的页面设计器和表单设计器中使用此自定义组件。
|
|
70
131
|
|
|
71
|
-
|
|
72
|
-
|
|
132
|
+
##### 授权配置获取方式
|
|
133
|
+
|
|
134
|
+
1. **客户端 ID 和客户端秘钥**:需通过创建连接器获取
|
|
135
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / 创建连接器
|
|
136
|
+
- 创建连接器后,从客户端信息中获取 `Client_Id` 和 `Client_Secret`
|
|
137
|
+
|
|
138
|
+
2. **安全令牌**:如何获取安全令牌
|
|
139
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / OAuth安全认证 / 密码模式 / 获取令牌
|
|
140
|
+
- 按照文档说明获取 8 位安全令牌
|
|
141
|
+
- `password` 字段 = 用户账户密码 + 8 位安全令牌(直接拼接,无空格或分隔符)
|
|
142
|
+
|
|
143
|
+
#### OAuth2 模式 vs 密码模式
|
|
144
|
+
|
|
145
|
+
| 特性 | OAuth2 授权码模式 | 密码模式 |
|
|
146
|
+
|------|------------------|---------|
|
|
147
|
+
| 安全性 | ✅ 高(无需在配置文件中存储密码) | ⚠️ 较低(需要配置密码和安全令牌) |
|
|
148
|
+
| Token 刷新 | ✅ 自动刷新 | ✅ 自动刷新 |
|
|
149
|
+
| 有效期 | 2 小时(可自动刷新) | 永不过期 |
|
|
150
|
+
| 推荐程度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### 配置项说明(neo-cmp-cli)
|
|
155
|
+
[请查看neo-cmp-cli](https://www.npmjs.com/package/neo-cmp-cli)
|
|
@@ -43,12 +43,76 @@ $ npm run linkDebug
|
|
|
43
43
|
$ npm run pushCmp
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
|
|
47
|
+
### 🔐 授权配置
|
|
48
|
+
|
|
49
|
+
使用 `neo push cmp`、`neo pull cmp`、`neo delete cmp` 等命令与 NeoCRM 平台交互时,需要配置授权信息。
|
|
50
|
+
|
|
51
|
+
#### 方式一:OAuth2 登录授权(推荐)
|
|
52
|
+
|
|
53
|
+
OAuth2 授权码模式更加安全可靠,无需用户配置账户名和密码。
|
|
54
|
+
|
|
55
|
+
##### 使用步骤
|
|
56
|
+
|
|
57
|
+
1. **登录 NeoCRM 平台**
|
|
58
|
+
```bash
|
|
59
|
+
neo login
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
执行流程:
|
|
63
|
+
- 自动打开浏览器访问授权页面
|
|
64
|
+
- 在浏览器中输入 NeoCRM 账号密码进行登录(需选择对应的租户)
|
|
65
|
+
- 授权成功后自动跳转回本地(附带 code)
|
|
66
|
+
- cli 端 通过 code 获取 Token,并自动保存到项目的 `.neo-cli/token.json` 文件中
|
|
67
|
+
|
|
68
|
+
2. **登出 NeoCRM 平台**
|
|
69
|
+
```bash
|
|
70
|
+
neo logout
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
功能:清除本地保存的 token 文件,下次使用需要重新登录。
|
|
74
|
+
|
|
75
|
+
##### 配置示例
|
|
76
|
+
|
|
47
77
|
```javascript
|
|
78
|
+
// neo.config.js
|
|
48
79
|
module.exports = {
|
|
49
80
|
neoConfig: {
|
|
50
81
|
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
51
|
-
|
|
82
|
+
// 登录授权 URL(用于获取 code)
|
|
83
|
+
loginURL: 'https://login-cd.xiaoshouyi.com/auc/oauth2/auth',
|
|
84
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
85
|
+
},
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
##### Token 有效期
|
|
90
|
+
|
|
91
|
+
- **access_token**:默认有效期 2 小时
|
|
92
|
+
- **refresh_token**:默认有效期 30 天
|
|
93
|
+
- 系统会在 access_token 过期前 5 分钟自动刷新
|
|
94
|
+
- 如果 refresh_token 也过期,需要重新执行 `neo login`
|
|
95
|
+
|
|
96
|
+
##### 常见问题
|
|
97
|
+
|
|
98
|
+
**Q1: 浏览器无法自动打开怎么办?**
|
|
99
|
+
A: 命令行会输出授权 URL,手动复制到浏览器中打开即可。
|
|
100
|
+
|
|
101
|
+
**Q2: Token 刷新失败怎么办?**
|
|
102
|
+
A: 如果 refresh_token 也过期(默认 30 天),需要重新执行 `neo login`。同时检查网络连接是否正常。
|
|
103
|
+
|
|
104
|
+
**Q3: 授权登录后没有正常跳回 redirect_uri**
|
|
105
|
+
A: 可能被浏览器安装的插件影响,目前已知会影响授权登录的浏览器插件有:Neo UI Extension,请关闭插件后重试。
|
|
106
|
+
|
|
107
|
+
#### 方式二:密码授权配置
|
|
108
|
+
|
|
109
|
+
在项目根目录的 `neo.config.js` 文件中添加 NeoCRM 平台授权配置:
|
|
110
|
+
|
|
111
|
+
```javascript
|
|
112
|
+
module.exports = {
|
|
113
|
+
neoConfig: {
|
|
114
|
+
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
115
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
52
116
|
// NeoCRM 授权配置
|
|
53
117
|
auth: {
|
|
54
118
|
client_id: 'xx', // 客户端 ID,从创建连接器的客户端信息中获取(Client_Id)
|
|
@@ -63,9 +127,28 @@ module.exports = {
|
|
|
63
127
|
},
|
|
64
128
|
}
|
|
65
129
|
```
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
130
|
+
|
|
131
|
+
##### 授权配置获取方式
|
|
132
|
+
|
|
133
|
+
1. **客户端 ID 和客户端秘钥**:需通过创建连接器获取
|
|
134
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / 创建连接器
|
|
135
|
+
- 创建连接器后,从客户端信息中获取 `Client_Id` 和 `Client_Secret`
|
|
136
|
+
|
|
137
|
+
2. **安全令牌**:如何获取安全令牌
|
|
138
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / OAuth安全认证 / 密码模式 / 获取令牌
|
|
139
|
+
- 按照文档说明获取 8 位安全令牌
|
|
140
|
+
- `password` 字段 = 用户账户密码 + 8 位安全令牌(直接拼接,无空格或分隔符)
|
|
141
|
+
|
|
142
|
+
#### OAuth2 模式 vs 密码模式
|
|
143
|
+
|
|
144
|
+
| 特性 | OAuth2 授权码模式 | 密码模式 |
|
|
145
|
+
|------|------------------|---------|
|
|
146
|
+
| 安全性 | ✅ 高(无需在配置文件中存储密码) | ⚠️ 较低(需要配置密码和安全令牌) |
|
|
147
|
+
| Token 刷新 | ✅ 自动刷新 | ✅ 自动刷新 |
|
|
148
|
+
| 有效期 | 2 小时(可自动刷新) | 永不过期 |
|
|
149
|
+
| 推荐程度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
150
|
+
|
|
151
|
+
---
|
|
69
152
|
|
|
70
153
|
### 配置项说明(neo-cmp-cli)
|
|
71
|
-
[请查看neo-cmp-cli](https://
|
|
154
|
+
[请查看neo-cmp-cli](https://www.npmjs.com/package/neo-cmp-cli)
|
|
@@ -43,12 +43,76 @@ $ npm run linkDebug
|
|
|
43
43
|
$ npm run pushCmp
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
|
|
47
|
+
### 🔐 授权配置
|
|
48
|
+
|
|
49
|
+
使用 `neo push cmp`、`neo pull cmp`、`neo delete cmp` 等命令与 NeoCRM 平台交互时,需要配置授权信息。
|
|
50
|
+
|
|
51
|
+
#### 方式一:OAuth2 登录授权(推荐)
|
|
52
|
+
|
|
53
|
+
OAuth2 授权码模式更加安全可靠,无需用户配置账户名和密码。
|
|
54
|
+
|
|
55
|
+
##### 使用步骤
|
|
56
|
+
|
|
57
|
+
1. **登录 NeoCRM 平台**
|
|
58
|
+
```bash
|
|
59
|
+
neo login
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
执行流程:
|
|
63
|
+
- 自动打开浏览器访问授权页面
|
|
64
|
+
- 在浏览器中输入 NeoCRM 账号密码进行登录(需选择对应的租户)
|
|
65
|
+
- 授权成功后自动跳转回本地(附带 code)
|
|
66
|
+
- cli 端 通过 code 获取 Token,并自动保存到项目的 `.neo-cli/token.json` 文件中
|
|
67
|
+
|
|
68
|
+
2. **登出 NeoCRM 平台**
|
|
69
|
+
```bash
|
|
70
|
+
neo logout
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
功能:清除本地保存的 token 文件,下次使用需要重新登录。
|
|
74
|
+
|
|
75
|
+
##### 配置示例
|
|
76
|
+
|
|
47
77
|
```javascript
|
|
78
|
+
// neo.config.js
|
|
48
79
|
module.exports = {
|
|
49
80
|
neoConfig: {
|
|
50
81
|
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
51
|
-
|
|
82
|
+
// 登录授权 URL(用于获取 code)
|
|
83
|
+
loginURL: 'https://login-cd.xiaoshouyi.com/auc/oauth2/auth',
|
|
84
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
85
|
+
},
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
##### Token 有效期
|
|
90
|
+
|
|
91
|
+
- **access_token**:默认有效期 2 小时
|
|
92
|
+
- **refresh_token**:默认有效期 30 天
|
|
93
|
+
- 系统会在 access_token 过期前 5 分钟自动刷新
|
|
94
|
+
- 如果 refresh_token 也过期,需要重新执行 `neo login`
|
|
95
|
+
|
|
96
|
+
##### 常见问题
|
|
97
|
+
|
|
98
|
+
**Q1: 浏览器无法自动打开怎么办?**
|
|
99
|
+
A: 命令行会输出授权 URL,手动复制到浏览器中打开即可。
|
|
100
|
+
|
|
101
|
+
**Q2: Token 刷新失败怎么办?**
|
|
102
|
+
A: 如果 refresh_token 也过期(默认 30 天),需要重新执行 `neo login`。同时检查网络连接是否正常。
|
|
103
|
+
|
|
104
|
+
**Q3: 授权登录后没有正常跳回 redirect_uri**
|
|
105
|
+
A: 可能被浏览器安装的插件影响,目前已知会影响授权登录的浏览器插件有:Neo UI Extension,请关闭插件后重试。
|
|
106
|
+
|
|
107
|
+
#### 方式二:密码授权配置
|
|
108
|
+
|
|
109
|
+
在项目根目录的 `neo.config.js` 文件中添加 NeoCRM 平台授权配置:
|
|
110
|
+
|
|
111
|
+
```javascript
|
|
112
|
+
module.exports = {
|
|
113
|
+
neoConfig: {
|
|
114
|
+
neoBaseURL: 'https://crm-cd.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
|
|
115
|
+
tokenAPI: 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址
|
|
52
116
|
// NeoCRM 授权配置
|
|
53
117
|
auth: {
|
|
54
118
|
client_id: 'xx', // 客户端 ID,从创建连接器的客户端信息中获取(Client_Id)
|
|
@@ -63,9 +127,28 @@ module.exports = {
|
|
|
63
127
|
},
|
|
64
128
|
}
|
|
65
129
|
```
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
130
|
+
|
|
131
|
+
##### 授权配置获取方式
|
|
132
|
+
|
|
133
|
+
1. **客户端 ID 和客户端秘钥**:需通过创建连接器获取
|
|
134
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / 创建连接器
|
|
135
|
+
- 创建连接器后,从客户端信息中获取 `Client_Id` 和 `Client_Secret`
|
|
136
|
+
|
|
137
|
+
2. **安全令牌**:如何获取安全令牌
|
|
138
|
+
- 访问 [销售易文档中心](https://doc.xiaoshouyi.com) / OAuth安全认证 / 密码模式 / 获取令牌
|
|
139
|
+
- 按照文档说明获取 8 位安全令牌
|
|
140
|
+
- `password` 字段 = 用户账户密码 + 8 位安全令牌(直接拼接,无空格或分隔符)
|
|
141
|
+
|
|
142
|
+
#### OAuth2 模式 vs 密码模式
|
|
143
|
+
|
|
144
|
+
| 特性 | OAuth2 授权码模式 | 密码模式 |
|
|
145
|
+
|------|------------------|---------|
|
|
146
|
+
| 安全性 | ✅ 高(无需在配置文件中存储密码) | ⚠️ 较低(需要配置密码和安全令牌) |
|
|
147
|
+
| Token 刷新 | ✅ 自动刷新 | ✅ 自动刷新 |
|
|
148
|
+
| 有效期 | 2 小时(可自动刷新) | 永不过期 |
|
|
149
|
+
| 推荐程度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
150
|
+
|
|
151
|
+
---
|
|
69
152
|
|
|
70
153
|
### 配置项说明(neo-cmp-cli)
|
|
71
|
-
[请查看neo-cmp-cli](https://
|
|
154
|
+
[请查看neo-cmp-cli](https://www.npmjs.com/package/neo-cmp-cli)
|
|
@@ -43,13 +43,14 @@ $ npm run linkDebug
|
|
|
43
43
|
$ npm run pushCmp
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
+
|
|
46
47
|
### 🔐 授权配置
|
|
47
48
|
|
|
48
49
|
使用 `neo push cmp`、`neo pull cmp`、`neo delete cmp` 等命令与 NeoCRM 平台交互时,需要配置授权信息。
|
|
49
50
|
|
|
50
51
|
#### 方式一:OAuth2 登录授权(推荐)
|
|
51
52
|
|
|
52
|
-
OAuth2
|
|
53
|
+
OAuth2 授权码模式更加安全可靠,无需用户配置账户名和密码。
|
|
53
54
|
|
|
54
55
|
##### 使用步骤
|
|
55
56
|
|
|
@@ -60,9 +61,9 @@ OAuth2 授权码模式更加安全可靠,且支持 token 自动刷新。
|
|
|
60
61
|
|
|
61
62
|
执行流程:
|
|
62
63
|
- 自动打开浏览器访问授权页面
|
|
63
|
-
- 在浏览器中输入 NeoCRM
|
|
64
|
-
-
|
|
65
|
-
- Token
|
|
64
|
+
- 在浏览器中输入 NeoCRM 账号密码进行登录(需选择对应的租户)
|
|
65
|
+
- 授权成功后自动跳转回本地(附带 code)
|
|
66
|
+
- cli 端 通过 code 获取 Token,并自动保存到项目的 `.neo-cli/token.json` 文件中
|
|
66
67
|
|
|
67
68
|
2. **登出 NeoCRM 平台**
|
|
68
69
|
```bash
|
|
@@ -92,6 +93,17 @@ module.exports = {
|
|
|
92
93
|
- 系统会在 access_token 过期前 5 分钟自动刷新
|
|
93
94
|
- 如果 refresh_token 也过期,需要重新执行 `neo login`
|
|
94
95
|
|
|
96
|
+
##### 常见问题
|
|
97
|
+
|
|
98
|
+
**Q1: 浏览器无法自动打开怎么办?**
|
|
99
|
+
A: 命令行会输出授权 URL,手动复制到浏览器中打开即可。
|
|
100
|
+
|
|
101
|
+
**Q2: Token 刷新失败怎么办?**
|
|
102
|
+
A: 如果 refresh_token 也过期(默认 30 天),需要重新执行 `neo login`。同时检查网络连接是否正常。
|
|
103
|
+
|
|
104
|
+
**Q3: 授权登录后没有正常跳回 redirect_uri**
|
|
105
|
+
A: 可能被浏览器安装的插件影响,目前已知会影响授权登录的浏览器插件有:Neo UI Extension,请关闭插件后重试。
|
|
106
|
+
|
|
95
107
|
#### 方式二:密码授权配置
|
|
96
108
|
|
|
97
109
|
在项目根目录的 `neo.config.js` 文件中添加 NeoCRM 平台授权配置:
|
|
@@ -133,13 +145,10 @@ module.exports = {
|
|
|
133
145
|
|------|------------------|---------|
|
|
134
146
|
| 安全性 | ✅ 高(无需在配置文件中存储密码) | ⚠️ 较低(需要配置密码和安全令牌) |
|
|
135
147
|
| Token 刷新 | ✅ 自动刷新 | ✅ 自动刷新 |
|
|
136
|
-
| 有效期 | 2 小时(可自动刷新) |
|
|
148
|
+
| 有效期 | 2 小时(可自动刷新) | 永不过期 |
|
|
137
149
|
| 推荐程度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
138
150
|
|
|
139
|
-
> **建议**:优先使用 OAuth2 授权码模式(`neo login`),更加安全便捷。
|
|
140
|
-
|
|
141
151
|
---
|
|
142
152
|
|
|
143
|
-
|
|
144
153
|
### 配置项说明(neo-cmp-cli)
|
|
145
|
-
[请查看neo-cmp-cli](https://
|
|
154
|
+
[请查看neo-cmp-cli](https://www.npmjs.com/package/neo-cmp-cli)
|