w-web-api 1.0.37 → 1.0.39
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 +2 -2
- package/db/wapis/apis/data.mdb +0 -0
- package/db/wapis/apis/lock.mdb +0 -0
- package/dist/index.tmp +1 -1
- package/dist/js/{app.659b941b.js → app-legacy.f7e293ef.js} +2 -2
- package/dist/js/app-legacy.f7e293ef.js.map +1 -0
- package/dist/js/{app-legacy.659b941b.js → app.f7e293ef.js} +2 -2
- package/dist/js/app.f7e293ef.js.map +1 -0
- package/dist/js/{chunk-vendors.787c32b5.js → chunk-vendors-legacy.767ef893.js} +2 -2
- package/dist/js/chunk-vendors-legacy.767ef893.js.map +1 -0
- package/dist/js/{chunk-vendors-legacy.787c32b5.js → chunk-vendors.767ef893.js} +2 -2
- package/dist/js/chunk-vendors.767ef893.js.map +1 -0
- package/dist/w-web-api.umd.js +2 -2
- package/dist/w-web-api.umd.js.map +1 -1
- package/docs/WWebApi.html +5 -5
- package/docs/WWebApi.mjs.html +15 -15
- package/docs/index.html +1 -1
- package/g.getSettings.mjs +6 -4
- package/g.mOrm.mjs +2 -2
- package/package.json +4 -4
- package/server/WWebApi.mjs +14 -14
- package/src/main.js +3 -4
- package/srv.mjs +5 -5
- package/tableTags.json +1 -1
- package/dist/js/app-legacy.659b941b.js.map +0 -1
- package/dist/js/app.659b941b.js.map +0 -1
- package/dist/js/chunk-vendors-legacy.787c32b5.js.map +0 -1
- package/dist/js/chunk-vendors.787c32b5.js.map +0 -1
package/docs/WWebApi.html
CHANGED
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
|
|
67
|
-
<h4 class="name" id="WWebApi"><span class="type-signature"></span>new WWebApi<span class="signature">(WOrm, url, db, getUserByToken,
|
|
67
|
+
<h4 class="name" id="WWebApi"><span class="type-signature"></span>new WWebApi<span class="signature">(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, opt<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Object}</span></h4>
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
|
|
128
128
|
<h5 class="h5-examples">Example</h5>
|
|
129
129
|
|
|
130
|
-
<pre class="prettyprint"><code>import WOrm from 'w-orm-mongodb/src/WOrmMongodb.mjs' //自行選擇引用ORM, 使用Mongodb測試
|
|
131
130
|
useCheckUser: false,
|
|
132
131
|
getUserById: null,
|
|
133
132
|
useExcludeWhenNotAdmin: false,
|
|
134
133
|
serverPort: 11005,
|
|
135
134
|
subfolder: '', //mapi
|
|
136
135
|
urlRedirect: 'https://www.google.com/', //本機測試時得先編譯, 再瀏覽: http://localhost:11005/
|
|
137
136
|
webName: {
|
|
138
137
|
'eng': 'API Service',
|
|
139
138
|
'cht': 'API管理系統',
|
|
140
139
|
},
|
|
141
140
|
webDescription: {
|
|
142
141
|
'eng': 'A web service package as methods to send requests to and receive responses from an API.',
|
|
143
142
|
'cht': 'A web service package as methods to send requests to and receive responses from an API.',
|
|
144
143
|
},
|
|
145
144
|
webLogo: 'data:image/svg+xml;base64,...',
|
|
146
145
|
// return {} //測試無法登入
|
|
147
146
|
if (token === '{token-for-application}') { //提供外部應用系統作為存取使用者
|
|
148
147
|
return {
|
|
149
148
|
id: 'id-for-application',
|
|
150
149
|
name: 'application',
|
|
151
150
|
email: 'application@example.com',
|
|
152
151
|
isAdmin: 'y',
|
|
153
152
|
}
|
|
154
153
|
}
|
|
155
154
|
if (token === 'sys') { //開發階段w-ui-loginout自動給予browser使用者(且位於localhost)的token為sys
|
|
156
155
|
return {
|
|
157
156
|
id: 'id-for-admin',
|
|
158
157
|
name: '測試者',
|
|
159
158
|
email: 'admin@example.com',
|
|
160
159
|
isAdmin: 'y',
|
|
161
160
|
}
|
|
162
161
|
}
|
|
163
162
|
console.log('invalid token', token)
|
|
164
163
|
console.log('於生產環境時得加入SSO等驗證token機制')
|
|
165
164
|
return {}
|
|
166
165
|
console.log('verifyBrowserUser/user', user)
|
|
167
166
|
// return false //測試無法登入
|
|
168
167
|
console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
|
|
169
168
|
return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
170
169
|
console.log('verifyAppUser/user', user)
|
|
171
170
|
// return false //測試無法登入
|
|
172
171
|
console.log('於生產環境時得加入限制應用程式使用者身份機制')
|
|
173
172
|
return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
174
173
|
console.log(err)
|
|
174
|
+
<pre class="prettyprint"><code>import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
|
|
175
175
|
useCheckUser: false,
|
|
176
176
|
getUserById: null,
|
|
177
177
|
useExcludeWhenNotAdmin: false,
|
|
178
178
|
serverPort: 11005,
|
|
179
179
|
subfolder: '', //mapi
|
|
180
180
|
urlRedirect: 'https://www.google.com/', //本機測試時得先編譯, 再瀏覽: http://localhost:11005/
|
|
181
181
|
webName: {
|
|
182
182
|
'eng': 'API Service',
|
|
183
183
|
'cht': 'API管理系統',
|
|
184
184
|
},
|
|
185
185
|
webDescription: {
|
|
186
186
|
'eng': 'A web service package as methods to send requests to and receive responses from an API.',
|
|
187
187
|
'cht': 'A web service package as methods to send requests to and receive responses from an API.',
|
|
188
188
|
},
|
|
189
189
|
webLogo: 'data:image/svg+xml;base64,...',
|
|
190
190
|
// return {} //測試無法登入
|
|
191
191
|
if (token === '{token-for-application}') { //提供外部應用系統作為存取使用者
|
|
192
192
|
return {
|
|
193
193
|
id: 'id-for-application',
|
|
194
194
|
name: 'application',
|
|
195
195
|
email: 'application@example.com',
|
|
196
196
|
isAdmin: 'y',
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
199
|
if (token === 'sys') { //開發階段w-ui-loginout自動給予browser使用者(且位於localhost)的token為sys
|
|
200
200
|
return {
|
|
201
201
|
id: 'id-for-admin',
|
|
202
202
|
name: '測試者',
|
|
203
203
|
email: 'admin@example.com',
|
|
204
204
|
isAdmin: 'y',
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
console.log('invalid token', token)
|
|
208
208
|
console.log('於生產環境時得加入SSO等驗證token機制')
|
|
209
209
|
return {}
|
|
210
210
|
console.log('verifyClientUser/user', user)
|
|
211
211
|
// return false //測試無法登入
|
|
212
212
|
console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
|
|
213
213
|
return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
214
214
|
console.log('verifyAppUser/user', user)
|
|
215
215
|
// return false //測試無法登入
|
|
216
216
|
console.log('於生產環境時得加入限制應用程式使用者身份機制')
|
|
217
217
|
return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
218
218
|
console.log(err)
|
|
219
219
|
|
|
220
220
|
|
|
221
221
|
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
</td>
|
|
227
227
|
|
|
228
228
|
|
|
229
|
-
<td class="description last"><p>輸入資料庫連線字串,例如'mongodb://
|
|
229
|
+
<td class="description last"><p>輸入資料庫連線字串,例如w-orm-lmdb為'./db',或w-orm-mongodb為'mongodb://username:password@$127.0.0.1:27017'</p></td>
|
|
230
230
|
</tr>
|
|
231
231
|
|
|
232
232
|
|
|
@@ -305,7 +305,7 @@
|
|
|
305
305
|
|
|
306
306
|
<tr>
|
|
307
307
|
|
|
308
|
-
<td class="name"><code>
|
|
308
|
+
<td class="name"><code>verifyClientUser</code></td>
|
|
309
309
|
|
|
310
310
|
|
|
311
311
|
<td class="type">
|
|
@@ -885,7 +885,7 @@
|
|
|
885
885
|
<br class="clear">
|
|
886
886
|
|
|
887
887
|
<footer>
|
|
888
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on
|
|
888
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Sat Jun 07 2025 21:13:58 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
889
889
|
</footer>
|
|
890
890
|
|
|
891
891
|
<script>prettyPrint();</script>
|
package/docs/WWebApi.mjs.html
CHANGED
|
@@ -77,10 +77,10 @@ import ds from '../src/schema/index.mjs'
|
|
|
77
77
|
*
|
|
78
78
|
* @class
|
|
79
79
|
* @param {Function} WOrm 輸入資料庫ORM函數
|
|
80
|
-
* @param {String} url 輸入資料庫連線字串,例如'mongodb://
|
|
80
|
+
* @param {String} url 輸入資料庫連線字串,例如w-orm-lmdb為'./db',或w-orm-mongodb為'mongodb://username:password@$127.0.0.1:27017'
|
|
81
81
|
* @param {String} db 輸入資料庫名稱字串
|
|
82
82
|
* @param {Function} getUserByToken 輸入處理函數,函數會傳入使用者token,通過此函數處理後並回傳使用者資訊物件,並至少須提供'id'、'email'、'name'、'isAdmin'欄位,且'isAdmin'限輸入'y'或'n',且輸入'y'時會複寫權限系統該使用者之'isAdmin'欄位值
|
|
83
|
-
* @param {Function}
|
|
83
|
+
* @param {Function} verifyClientUser 輸入驗證瀏覽使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
|
|
84
84
|
* @param {Function} verifyAppUser 輸入驗證應用程序使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
|
|
85
85
|
* @param {Object} [opt={}] 輸入設定物件,預設{}
|
|
86
86
|
* @param {Integer} [opt.serverPort=11005] 輸入伺服器通訊port,預設11005
|
|
@@ -95,7 +95,7 @@ import ds from '../src/schema/index.mjs'
|
|
|
95
95
|
* @returns {Object} 回傳物件,其內server為hapi伺服器實體,wsrv為w-converhp的伺服器事件物件,wsds為w-serv-webdata的伺服器事件物件,可監聽error事件
|
|
96
96
|
* @example
|
|
97
97
|
*
|
|
98
|
-
* import WOrm from 'w-orm-
|
|
98
|
+
* import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
|
|
99
99
|
* import WWebApi from './server/WWebApi.mjs'
|
|
100
100
|
* import getSettings from './g.getSettings.mjs'
|
|
101
101
|
*
|
|
@@ -103,7 +103,7 @@ import ds from '../src/schema/index.mjs'
|
|
|
103
103
|
* //st
|
|
104
104
|
* let st = getSettings()
|
|
105
105
|
*
|
|
106
|
-
* let url =
|
|
106
|
+
* let url = st.dbUrl
|
|
107
107
|
* let db = st.dbName
|
|
108
108
|
* let opt = {
|
|
109
109
|
*
|
|
@@ -150,8 +150,8 @@ import ds from '../src/schema/index.mjs'
|
|
|
150
150
|
* return {}
|
|
151
151
|
* }
|
|
152
152
|
*
|
|
153
|
-
* let
|
|
154
|
-
* console.log('
|
|
153
|
+
* let verifyClientUser = (user, caller) => {
|
|
154
|
+
* console.log('verifyClientUser/user', user)
|
|
155
155
|
* // return false //測試無法登入
|
|
156
156
|
* console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
|
|
157
157
|
* return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
@@ -165,14 +165,14 @@ import ds from '../src/schema/index.mjs'
|
|
|
165
165
|
* }
|
|
166
166
|
*
|
|
167
167
|
* //WWebApi
|
|
168
|
-
* let instWWebApi = WWebApi(WOrm, url, db, getUserByToken,
|
|
168
|
+
* let instWWebApi = WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, opt)
|
|
169
169
|
*
|
|
170
170
|
* instWWebApi.on('error', (err) => {
|
|
171
171
|
* console.log(err)
|
|
172
172
|
* })
|
|
173
173
|
*
|
|
174
174
|
*/
|
|
175
|
-
function WWebApi(WOrm, url, db, getUserByToken,
|
|
175
|
+
function WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, opt = {}) {
|
|
176
176
|
let instWServHapiServer = null
|
|
177
177
|
|
|
178
178
|
|
|
@@ -204,10 +204,10 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
|
|
207
|
-
//check
|
|
208
|
-
if (!isfun(
|
|
209
|
-
console.log('invalid
|
|
210
|
-
throw new Error('invalid
|
|
207
|
+
//check verifyClientUser
|
|
208
|
+
if (!isfun(verifyClientUser)) {
|
|
209
|
+
console.log('invalid verifyClientUser', verifyClientUser)
|
|
210
|
+
throw new Error('invalid verifyClientUser')
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
|
|
@@ -318,8 +318,8 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
318
318
|
//getTokenUser
|
|
319
319
|
let userSelf = await getTokenUser(token)
|
|
320
320
|
|
|
321
|
-
//
|
|
322
|
-
let b =
|
|
321
|
+
//verifyClientUser
|
|
322
|
+
let b = verifyClientUser(userSelf, caller)
|
|
323
323
|
if (ispm(b)) {
|
|
324
324
|
b = await b
|
|
325
325
|
}
|
|
@@ -749,7 +749,7 @@ export default WWebApi
|
|
|
749
749
|
<br class="clear">
|
|
750
750
|
|
|
751
751
|
<footer>
|
|
752
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on
|
|
752
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Sat Jun 07 2025 21:13:58 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
753
753
|
</footer>
|
|
754
754
|
|
|
755
755
|
<script>prettyPrint();</script>
|
package/docs/index.html
CHANGED
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
<br class="clear">
|
|
72
72
|
|
|
73
73
|
<footer>
|
|
74
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on
|
|
74
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Sat Jun 07 2025 21:13:58 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
75
75
|
</footer>
|
|
76
76
|
|
|
77
77
|
<script>prettyPrint();</script>
|
package/g.getSettings.mjs
CHANGED
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
|
|
6
6
|
function getSettings() {
|
|
7
7
|
return {
|
|
8
|
-
'dbUsername': 'username',
|
|
9
|
-
'dbPassword': 'password',
|
|
8
|
+
// 'dbUsername': 'username',
|
|
9
|
+
// 'dbPassword': 'password',
|
|
10
|
+
// 'dbName': 'wapis',
|
|
11
|
+
// 'dbIP': '127.0.0.1',
|
|
12
|
+
// 'dbPort': 27017,
|
|
13
|
+
'dbUrl': './db',
|
|
10
14
|
'dbName': 'wapis',
|
|
11
|
-
'dbIP': '127.0.0.1',
|
|
12
|
-
'dbPort': 27017,
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
17
|
|
package/g.mOrm.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import WOrm from 'w-orm-
|
|
1
|
+
import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
|
|
2
2
|
import WServOrm from 'w-serv-orm/src/WServOrm.mjs'
|
|
3
3
|
import ds from './src/schema/index.mjs'
|
|
4
4
|
import getSettings from './g.getSettings.mjs'
|
|
@@ -8,7 +8,7 @@ import getSettings from './g.getSettings.mjs'
|
|
|
8
8
|
let st = getSettings()
|
|
9
9
|
|
|
10
10
|
//url, db
|
|
11
|
-
let url =
|
|
11
|
+
let url = st.dbUrl
|
|
12
12
|
let db = st.dbName
|
|
13
13
|
|
|
14
14
|
//WServOrm
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "w-web-api",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.39",
|
|
4
4
|
"main": "dist/w-web-api.umd.js",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@mdi/js": "^7.4.47",
|
|
7
|
-
"axios": "^1.
|
|
7
|
+
"axios": "^1.9.0",
|
|
8
8
|
"lodash-es": "^4.17.21",
|
|
9
9
|
"showdown": "^2.1.0",
|
|
10
10
|
"w-component-vue": "^2.4.20",
|
|
11
11
|
"w-data-collector": "^1.0.22",
|
|
12
|
-
"w-serv-hapi": "^1.0.
|
|
12
|
+
"w-serv-hapi": "^1.0.57",
|
|
13
13
|
"w-serv-orm": "^1.0.26",
|
|
14
14
|
"w-ui-loginout": "^1.0.9",
|
|
15
15
|
"wsemi": "^1.7.92"
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"eslint-plugin-vue": "^9.10.0",
|
|
29
29
|
"vue": "^2.6.14",
|
|
30
30
|
"vuex": "^3.6.2",
|
|
31
|
-
"w-orm-
|
|
31
|
+
"w-orm-lmdb": "^1.0.1",
|
|
32
32
|
"w-package-tools": "^1.1.2"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
package/server/WWebApi.mjs
CHANGED
|
@@ -30,10 +30,10 @@ import ds from '../src/schema/index.mjs'
|
|
|
30
30
|
*
|
|
31
31
|
* @class
|
|
32
32
|
* @param {Function} WOrm 輸入資料庫ORM函數
|
|
33
|
-
* @param {String} url 輸入資料庫連線字串,例如'mongodb://
|
|
33
|
+
* @param {String} url 輸入資料庫連線字串,例如w-orm-lmdb為'./db',或w-orm-mongodb為'mongodb://username:password@$127.0.0.1:27017'
|
|
34
34
|
* @param {String} db 輸入資料庫名稱字串
|
|
35
35
|
* @param {Function} getUserByToken 輸入處理函數,函數會傳入使用者token,通過此函數處理後並回傳使用者資訊物件,並至少須提供'id'、'email'、'name'、'isAdmin'欄位,且'isAdmin'限輸入'y'或'n',且輸入'y'時會複寫權限系統該使用者之'isAdmin'欄位值
|
|
36
|
-
* @param {Function}
|
|
36
|
+
* @param {Function} verifyClientUser 輸入驗證瀏覽使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
|
|
37
37
|
* @param {Function} verifyAppUser 輸入驗證應用程序使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
|
|
38
38
|
* @param {Object} [opt={}] 輸入設定物件,預設{}
|
|
39
39
|
* @param {Integer} [opt.serverPort=11005] 輸入伺服器通訊port,預設11005
|
|
@@ -48,7 +48,7 @@ import ds from '../src/schema/index.mjs'
|
|
|
48
48
|
* @returns {Object} 回傳物件,其內server為hapi伺服器實體,wsrv為w-converhp的伺服器事件物件,wsds為w-serv-webdata的伺服器事件物件,可監聽error事件
|
|
49
49
|
* @example
|
|
50
50
|
*
|
|
51
|
-
* import WOrm from 'w-orm-
|
|
51
|
+
* import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
|
|
52
52
|
* import WWebApi from './server/WWebApi.mjs'
|
|
53
53
|
* import getSettings from './g.getSettings.mjs'
|
|
54
54
|
*
|
|
@@ -56,7 +56,7 @@ import ds from '../src/schema/index.mjs'
|
|
|
56
56
|
* //st
|
|
57
57
|
* let st = getSettings()
|
|
58
58
|
*
|
|
59
|
-
* let url =
|
|
59
|
+
* let url = st.dbUrl
|
|
60
60
|
* let db = st.dbName
|
|
61
61
|
* let opt = {
|
|
62
62
|
*
|
|
@@ -103,8 +103,8 @@ import ds from '../src/schema/index.mjs'
|
|
|
103
103
|
* return {}
|
|
104
104
|
* }
|
|
105
105
|
*
|
|
106
|
-
* let
|
|
107
|
-
* console.log('
|
|
106
|
+
* let verifyClientUser = (user, caller) => {
|
|
107
|
+
* console.log('verifyClientUser/user', user)
|
|
108
108
|
* // return false //測試無法登入
|
|
109
109
|
* console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
|
|
110
110
|
* return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
@@ -118,14 +118,14 @@ import ds from '../src/schema/index.mjs'
|
|
|
118
118
|
* }
|
|
119
119
|
*
|
|
120
120
|
* //WWebApi
|
|
121
|
-
* let instWWebApi = WWebApi(WOrm, url, db, getUserByToken,
|
|
121
|
+
* let instWWebApi = WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, opt)
|
|
122
122
|
*
|
|
123
123
|
* instWWebApi.on('error', (err) => {
|
|
124
124
|
* console.log(err)
|
|
125
125
|
* })
|
|
126
126
|
*
|
|
127
127
|
*/
|
|
128
|
-
function WWebApi(WOrm, url, db, getUserByToken,
|
|
128
|
+
function WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, opt = {}) {
|
|
129
129
|
let instWServHapiServer = null
|
|
130
130
|
|
|
131
131
|
|
|
@@ -157,10 +157,10 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
|
|
160
|
-
//check
|
|
161
|
-
if (!isfun(
|
|
162
|
-
console.log('invalid
|
|
163
|
-
throw new Error('invalid
|
|
160
|
+
//check verifyClientUser
|
|
161
|
+
if (!isfun(verifyClientUser)) {
|
|
162
|
+
console.log('invalid verifyClientUser', verifyClientUser)
|
|
163
|
+
throw new Error('invalid verifyClientUser')
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
|
|
@@ -271,8 +271,8 @@ function WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
271
271
|
//getTokenUser
|
|
272
272
|
let userSelf = await getTokenUser(token)
|
|
273
273
|
|
|
274
|
-
//
|
|
275
|
-
let b =
|
|
274
|
+
//verifyClientUser
|
|
275
|
+
let b = verifyClientUser(userSelf, caller)
|
|
276
276
|
if (ispm(b)) {
|
|
277
277
|
b = await b
|
|
278
278
|
}
|
package/src/main.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import get from 'lodash-es/get.js'
|
|
1
|
+
import get from 'lodash-es/get.js'
|
|
2
2
|
// import '@babel/polyfill' //需提供Vuetify的Symbol等API
|
|
3
3
|
// import 'core-js/stable' //需提供Vuetify的Symbol等API, 官網說使用transpileDependencies但不夠, 改用之前提到的@babel/polyfill會被提示已廢棄, 改使用給webpack的polyfill方式才行
|
|
4
4
|
// import 'regenerator-runtime/runtime'
|
|
@@ -56,10 +56,9 @@ Vue.directive('domdragdrop', domDragDrop())
|
|
|
56
56
|
let bFirstSync = false
|
|
57
57
|
WServHapiClient({
|
|
58
58
|
showLog: false,
|
|
59
|
-
|
|
60
|
-
return window.location.origin + window.location.pathname
|
|
61
|
-
},
|
|
59
|
+
url: window.location.origin + window.location.pathname,
|
|
62
60
|
useWaitToken: true,
|
|
61
|
+
apiName: 'api',
|
|
63
62
|
getToken: () => {
|
|
64
63
|
let token = get(Vue.prototype, `$store.state.userToken`, '')
|
|
65
64
|
// console.log('getToken', token)
|
package/srv.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import WOrm from 'w-orm-
|
|
1
|
+
import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
|
|
2
2
|
import WWebApi from './server/WWebApi.mjs'
|
|
3
3
|
import getSettings from './g.getSettings.mjs'
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@ import getSettings from './g.getSettings.mjs'
|
|
|
6
6
|
//st
|
|
7
7
|
let st = getSettings()
|
|
8
8
|
|
|
9
|
-
let url =
|
|
9
|
+
let url = st.dbUrl
|
|
10
10
|
let db = st.dbName
|
|
11
11
|
let opt = {
|
|
12
12
|
|
|
@@ -53,8 +53,8 @@ let getUserByToken = async (token) => {
|
|
|
53
53
|
return {}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
let
|
|
57
|
-
console.log('
|
|
56
|
+
let verifyClientUser = (user, caller) => {
|
|
57
|
+
console.log('verifyClientUser/user', user)
|
|
58
58
|
// return false //測試無法登入
|
|
59
59
|
console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
|
|
60
60
|
return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
@@ -68,7 +68,7 @@ let verifyAppUser = (user, caller) => {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
//WWebApi
|
|
71
|
-
let instWWebApi = WWebApi(WOrm, url, db, getUserByToken,
|
|
71
|
+
let instWWebApi = WWebApi(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, opt)
|
|
72
72
|
|
|
73
73
|
instWWebApi.on('error', (err) => {
|
|
74
74
|
console.log(err)
|
package/tableTags.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"apis":"2025-
|
|
1
|
+
{"apis":"2025-06-07T21:07:37+08:00|SJWbEU"}
|