w-web-sso 1.0.11 → 1.0.13
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/dist/index.tmp +1 -1
- package/dist/js/{app.eb86b892.js → app-legacy.d468ef7f.js} +2 -2
- package/dist/js/app-legacy.d468ef7f.js.map +1 -0
- package/dist/js/{app-legacy.eb86b892.js → app.d468ef7f.js} +2 -2
- package/dist/js/app.d468ef7f.js.map +1 -0
- package/dist/js/{chunk-vendors.37e522b4.js → chunk-vendors-legacy.f51f58bb.js} +4 -4
- package/dist/js/chunk-vendors-legacy.f51f58bb.js.map +1 -0
- package/dist/js/{chunk-vendors-legacy.37e522b4.js → chunk-vendors.f51f58bb.js} +4 -4
- package/dist/js/chunk-vendors.f51f58bb.js.map +1 -0
- package/dist/w-web-sso.umd.js +2 -2
- package/dist/w-web-sso.umd.js.map +1 -1
- package/docs/WWebSso.html +3 -3
- package/docs/WWebSso.mjs.html +20 -16
- package/docs/index.html +1 -1
- package/package.json +3 -3
- package/server/WWebSso.mjs +19 -15
- package/src/main.js +2 -3
- package/srv.mjs +8 -5
- package/dist/js/app-legacy.eb86b892.js.map +0 -1
- package/dist/js/app.eb86b892.js.map +0 -1
- package/dist/js/chunk-vendors-legacy.37e522b4.js.map +0 -1
- package/dist/js/chunk-vendors.37e522b4.js.map +0 -1
package/docs/WWebSso.html
CHANGED
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
|
|
67
|
-
<h4 class="name" id="WWebSso"><span class="type-signature"></span>new WWebSso<span class="signature">(WOrm, url, db, getUserByToken,
|
|
67
|
+
<h4 class="name" id="WWebSso"><span class="type-signature"></span>new WWebSso<span class="signature">(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, pathSettings<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Object}</span></h4>
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
|
|
@@ -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">
|
|
@@ -495,7 +495,7 @@
|
|
|
495
495
|
<br class="clear">
|
|
496
496
|
|
|
497
497
|
<footer>
|
|
498
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on
|
|
498
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Sat Jun 07 2025 20:41:04 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
499
499
|
</footer>
|
|
500
500
|
|
|
501
501
|
<script>prettyPrint();</script>
|
package/docs/WWebSso.mjs.html
CHANGED
|
@@ -77,7 +77,7 @@ import procSettings from './procSettings.mjs'
|
|
|
77
77
|
* @param {String} url 輸入資料庫連線字串,例如w-orm-lmdb為'./db',或w-orm-mongodb為'mongodb://sername:password@$127.0.0.1:27017'
|
|
78
78
|
* @param {String} db 輸入資料庫名稱字串
|
|
79
79
|
* @param {Function} getUserByToken 輸入處理函數,函數會傳入使用者token,通過此函數處理後並回傳使用者資訊物件,並至少須提供'id'、'email'、'name'、'isAdmin'欄位,且'isAdmin'限輸入'y'或'n',且輸入'y'時會複寫權限系統該使用者之'isAdmin'欄位值
|
|
80
|
-
* @param {Function}
|
|
80
|
+
* @param {Function} verifyClientUser 輸入驗證瀏覽使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
|
|
81
81
|
* @param {Function} verifyAppUser 輸入驗證應用程序使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
|
|
82
82
|
* @param {String} [pathSettings='./settings'] 輸入設定檔案路徑字串,預設'./settings'
|
|
83
83
|
* @returns {Object} 回傳物件,其內server為hapi伺服器實體,wsrv為w-converhp的伺服器事件物件,wsds為w-serv-webdata的伺服器事件物件,可監聽error事件
|
|
@@ -86,7 +86,7 @@ import procSettings from './procSettings.mjs'
|
|
|
86
86
|
*
|
|
87
87
|
*
|
|
88
88
|
*/
|
|
89
|
-
function WWebSso(WOrm, url, db, getUserByToken,
|
|
89
|
+
function WWebSso(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, pathSettings) {
|
|
90
90
|
let instWServHapiServer = null
|
|
91
91
|
|
|
92
92
|
|
|
@@ -118,10 +118,10 @@ function WWebSso(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
|
|
121
|
-
//check
|
|
122
|
-
if (!isfun(
|
|
123
|
-
console.log('invalid
|
|
124
|
-
throw new Error('invalid
|
|
121
|
+
//check verifyClientUser
|
|
122
|
+
if (!isfun(verifyClientUser)) {
|
|
123
|
+
console.log('invalid verifyClientUser', verifyClientUser)
|
|
124
|
+
throw new Error('invalid verifyClientUser')
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
|
|
@@ -418,8 +418,8 @@ function WWebSso(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
418
418
|
// //getTokenUser
|
|
419
419
|
// let userSelf = await getTokenUser(token)
|
|
420
420
|
|
|
421
|
-
// //
|
|
422
|
-
// let b =
|
|
421
|
+
// //verifyClientUser
|
|
422
|
+
// let b = verifyClientUser(userSelf, caller)
|
|
423
423
|
// if (ispm(b)) {
|
|
424
424
|
// b = await b
|
|
425
425
|
// }
|
|
@@ -599,13 +599,13 @@ function WWebSso(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
599
599
|
// },
|
|
600
600
|
// },
|
|
601
601
|
|
|
602
|
-
{
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
},
|
|
602
|
+
// {
|
|
603
|
+
// method: 'GET',
|
|
604
|
+
// path: '/getWebInfor',
|
|
605
|
+
// handler: async function (req, res) {
|
|
606
|
+
// return getWebInfor() //bbb 應該已不用, 前端載入通訊器後由$fapi.getWebInfor呼叫
|
|
607
|
+
// },
|
|
608
|
+
// },
|
|
609
609
|
|
|
610
610
|
{
|
|
611
611
|
method: 'GET',
|
|
@@ -754,9 +754,13 @@ function WWebSso(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
754
754
|
port: opt.serverPort,
|
|
755
755
|
pathStaticFiles,
|
|
756
756
|
apis,
|
|
757
|
+
verifyConn: () => {
|
|
758
|
+
return true
|
|
759
|
+
},
|
|
757
760
|
getUserIdByToken: async (token) => { //可使用async或sync函數
|
|
758
761
|
return ''
|
|
759
762
|
},
|
|
763
|
+
corsOrigins: ['*'],
|
|
760
764
|
useDbOrm: false,
|
|
761
765
|
// kpOrm: woItems,
|
|
762
766
|
// operOrm: procOrm, //procOrm的輸入為: userId, tableName, methodName, input
|
|
@@ -825,7 +829,7 @@ export default WWebSso
|
|
|
825
829
|
<br class="clear">
|
|
826
830
|
|
|
827
831
|
<footer>
|
|
828
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on
|
|
832
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Sat Jun 07 2025 20:41:04 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
|
|
829
833
|
</footer>
|
|
830
834
|
|
|
831
835
|
<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 20:41:04 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/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "w-web-sso",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.13",
|
|
4
4
|
"main": "dist/w-web-sso.umd.js",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@mdi/js": "^7.4.47",
|
|
7
|
-
"axios": "^1.
|
|
7
|
+
"axios": "^1.9.0",
|
|
8
8
|
"json5": "^2.2.3",
|
|
9
9
|
"lodash-es": "^4.17.21",
|
|
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"
|
package/server/WWebSso.mjs
CHANGED
|
@@ -30,7 +30,7 @@ import procSettings from './procSettings.mjs'
|
|
|
30
30
|
* @param {String} url 輸入資料庫連線字串,例如w-orm-lmdb為'./db',或w-orm-mongodb為'mongodb://sername:password@$127.0.0.1:27017'
|
|
31
31
|
* @param {String} db 輸入資料庫名稱字串
|
|
32
32
|
* @param {Function} getUserByToken 輸入處理函數,函數會傳入使用者token,通過此函數處理後並回傳使用者資訊物件,並至少須提供'id'、'email'、'name'、'isAdmin'欄位,且'isAdmin'限輸入'y'或'n',且輸入'y'時會複寫權限系統該使用者之'isAdmin'欄位值
|
|
33
|
-
* @param {Function}
|
|
33
|
+
* @param {Function} verifyClientUser 輸入驗證瀏覽使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
|
|
34
34
|
* @param {Function} verifyAppUser 輸入驗證應用程序使用者身份之處理函數,函數會傳入使用者資訊物件,通過此函數識別後回傳布林值,允許使用者回傳true,反之回傳false
|
|
35
35
|
* @param {String} [pathSettings='./settings'] 輸入設定檔案路徑字串,預設'./settings'
|
|
36
36
|
* @returns {Object} 回傳物件,其內server為hapi伺服器實體,wsrv為w-converhp的伺服器事件物件,wsds為w-serv-webdata的伺服器事件物件,可監聽error事件
|
|
@@ -39,7 +39,7 @@ import procSettings from './procSettings.mjs'
|
|
|
39
39
|
*
|
|
40
40
|
*
|
|
41
41
|
*/
|
|
42
|
-
function WWebSso(WOrm, url, db, getUserByToken,
|
|
42
|
+
function WWebSso(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, pathSettings) {
|
|
43
43
|
let instWServHapiServer = null
|
|
44
44
|
|
|
45
45
|
|
|
@@ -71,10 +71,10 @@ function WWebSso(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
//check
|
|
75
|
-
if (!isfun(
|
|
76
|
-
console.log('invalid
|
|
77
|
-
throw new Error('invalid
|
|
74
|
+
//check verifyClientUser
|
|
75
|
+
if (!isfun(verifyClientUser)) {
|
|
76
|
+
console.log('invalid verifyClientUser', verifyClientUser)
|
|
77
|
+
throw new Error('invalid verifyClientUser')
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
|
|
@@ -371,8 +371,8 @@ function WWebSso(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
371
371
|
// //getTokenUser
|
|
372
372
|
// let userSelf = await getTokenUser(token)
|
|
373
373
|
|
|
374
|
-
// //
|
|
375
|
-
// let b =
|
|
374
|
+
// //verifyClientUser
|
|
375
|
+
// let b = verifyClientUser(userSelf, caller)
|
|
376
376
|
// if (ispm(b)) {
|
|
377
377
|
// b = await b
|
|
378
378
|
// }
|
|
@@ -552,13 +552,13 @@ function WWebSso(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
552
552
|
// },
|
|
553
553
|
// },
|
|
554
554
|
|
|
555
|
-
{
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
},
|
|
555
|
+
// {
|
|
556
|
+
// method: 'GET',
|
|
557
|
+
// path: '/getWebInfor',
|
|
558
|
+
// handler: async function (req, res) {
|
|
559
|
+
// return getWebInfor() //bbb 應該已不用, 前端載入通訊器後由$fapi.getWebInfor呼叫
|
|
560
|
+
// },
|
|
561
|
+
// },
|
|
562
562
|
|
|
563
563
|
{
|
|
564
564
|
method: 'GET',
|
|
@@ -707,9 +707,13 @@ function WWebSso(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser
|
|
|
707
707
|
port: opt.serverPort,
|
|
708
708
|
pathStaticFiles,
|
|
709
709
|
apis,
|
|
710
|
+
verifyConn: () => {
|
|
711
|
+
return true
|
|
712
|
+
},
|
|
710
713
|
getUserIdByToken: async (token) => { //可使用async或sync函數
|
|
711
714
|
return ''
|
|
712
715
|
},
|
|
716
|
+
corsOrigins: ['*'],
|
|
713
717
|
useDbOrm: false,
|
|
714
718
|
// kpOrm: woItems,
|
|
715
719
|
// operOrm: procOrm, //procOrm的輸入為: userId, tableName, methodName, input
|
package/src/main.js
CHANGED
|
@@ -51,10 +51,9 @@ Vue.directive('domdragdrop', domDragDrop())
|
|
|
51
51
|
// let bFirstSync = false
|
|
52
52
|
WServHapiClient({
|
|
53
53
|
showLog: false,
|
|
54
|
-
|
|
55
|
-
return window.location.origin + window.location.pathname
|
|
56
|
-
},
|
|
54
|
+
url: window.location.origin + window.location.pathname,
|
|
57
55
|
useWaitToken: false,
|
|
56
|
+
apiName: 'api',
|
|
58
57
|
getToken: () => {
|
|
59
58
|
let token = get(Vue.prototype, `$store.state.userToken`, '')
|
|
60
59
|
// console.log('getToken', token)
|
package/srv.mjs
CHANGED
|
@@ -33,8 +33,8 @@ let getUserByToken = async (token) => {
|
|
|
33
33
|
return {}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
let
|
|
37
|
-
console.log('
|
|
36
|
+
let verifyClientUser = (user, caller) => {
|
|
37
|
+
console.log('verifyClientUser/user', user)
|
|
38
38
|
// return false //測試無法登入
|
|
39
39
|
console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
|
|
40
40
|
return user.isAdmin === 'y' //測試僅系統管理者使用
|
|
@@ -48,13 +48,16 @@ let verifyAppUser = (user, caller) => {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
//WWebSso
|
|
51
|
-
let instWWebSso = WWebSso(WOrm, url, db, getUserByToken,
|
|
51
|
+
let instWWebSso = WWebSso(WOrm, url, db, getUserByToken, verifyClientUser, verifyAppUser, pathSettings)
|
|
52
52
|
|
|
53
53
|
instWWebSso.on('error', (err) => {
|
|
54
54
|
console.log(err)
|
|
55
55
|
})
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
//http://localhost:8080
|
|
57
|
+
//測試
|
|
58
|
+
//http://localhost:8080/ => 登入後轉至指定頁
|
|
59
|
+
//http://localhost:8080/?token=sys => 網址給予token但不使用, 登入後轉至指定頁
|
|
60
|
+
//http://localhost:8080/?view=backstage => 登入後轉至後台
|
|
61
|
+
//http://localhost:8080/?view=backstage&token=sys => 網址給予token但不使用, 登入後轉至後台
|
|
59
62
|
|
|
60
63
|
//node srv.mjs
|