@abtnode/blocklet-services 1.16.42-beta-20250412-083409-53f46a85 → 1.16.42-beta-20250413-121549-22e9a196
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/api/index.js +32 -2
- package/api/libs/push-kit/index.js +16 -11
- package/api/routes/user-session.js +49 -40
- package/api/routes/user.js +16 -4
- package/api/services/auth/session.js +37 -10
- package/api/util/attach-shared-utils.js +12 -5
- package/dist/assets/{ArrowDropDown-C_E3qkPd.js → ArrowDropDown-a-C4j7Lx.js} +1 -1
- package/dist/assets/{CheckCircle-D7Ntmb2o.js → CheckCircle-CuYzdCtm.js} +1 -1
- package/dist/assets/{ChevronLeft-BIgT65EY.js → ChevronLeft-CnflXey6.js} +1 -1
- package/dist/assets/{ChevronRight-foZmiP4J.js → ChevronRight-DE7hYCb3.js} +1 -1
- package/dist/assets/{Community-Ds1NG5Zj.js → Community-C8NtUXNH.js} +1 -1
- package/dist/assets/{DeleteOutline-CKVA3PXs.js → DeleteOutline-PGhagisl.js} +1 -1
- package/dist/assets/{Done-BDrYSkZM.js → Done-BVaQae1-.js} +1 -1
- package/dist/assets/{Download-BQiSNQBP.js → Download-DNNh4N1T.js} +1 -1
- package/dist/assets/{EditIcon-Bt91o1l6.js → EditIcon-Y1U-3M09.js} +1 -1
- package/dist/assets/{Email-C7SKOpM8.js → Email-BYzCrU9G.js} +1 -1
- package/dist/assets/{Error-CK4gTMoT.js → Error-C4dVUMw4.js} +1 -1
- package/dist/assets/{ExpandLess-1B6PdCYC.js → ExpandLess-Blh1x-4z.js} +1 -1
- package/dist/assets/{Google-DimUFzIe.js → Google-CAujGJ1A.js} +1 -1
- package/dist/assets/{Holiday-Dfj3kBBI.js → Holiday-DxDxhx5X.js} +1 -1
- package/dist/assets/{InfoOutlined-CEHciuDy.js → InfoOutlined-DF9JwavD.js} +1 -1
- package/dist/assets/{Launch-DX76v5dw.js → Launch-gOz_lwLg.js} +1 -1
- package/dist/assets/{LaunchOutlined-CnOQGhu-.js → LaunchOutlined-MbSPR9qn.js} +1 -1
- package/dist/assets/{Location--4ueDivQ.js → Location-CEwgGcA5.js} +1 -1
- package/dist/assets/{LockIcon-B84lMZao.js → LockIcon-D7BH0t_p.js} +1 -1
- package/dist/assets/{Meeting-CVVnP-bH.js → Meeting-BJz5QiFc.js} +1 -1
- package/dist/assets/{MoreHoriz-THEF6D0C.js → MoreHoriz-CGWVyYh4.js} +1 -1
- package/dist/assets/{OffSick-C_2x7yDI.js → OffSick--msvqLGm.js} +1 -1
- package/dist/assets/{Phone-CaKOX2Yu.js → Phone-CDl3oDYG.js} +1 -1
- package/dist/assets/{PlayArrow-DpcMtsY5.js → PlayArrow-CxWt6459.js} +1 -1
- package/dist/assets/{QuestionMarkCircle-5K6WR8Pc.js → QuestionMarkCircle-CPHZnM6u.js} +1 -1
- package/dist/assets/{ServerLogo-C4P-qXGV.js → ServerLogo-vX_nf8Sc.js} +1 -1
- package/dist/assets/{Timezone-Bgwxnj29.js → Timezone-uXi4_8BX.js} +1 -1
- package/dist/assets/{TuneOutlined-DHqZ7jGz.js → TuneOutlined-DcqnBMqE.js} +1 -1
- package/dist/assets/{ViewList-DOu7Co_L.js → ViewList-B6eveRY-.js} +1 -1
- package/dist/assets/{WorkingRemotely-Dm2BOs5c.js → WorkingRemotely-CK4z1-Sd.js} +1 -1
- package/dist/assets/{access-control-wqGz9JCo.js → access-control-Dxyg5dpc.js} +1 -1
- package/dist/assets/{actions-CAL1KFv7.js → actions-BAjt7G_t.js} +1 -1
- package/dist/assets/{add-component-core-DqvSoT6a.js → add-component-core-BXowXTJz.js} +1 -1
- package/dist/assets/{add-resource-DmN1IY_o.js → add-resource-BetUBTvt.js} +1 -1
- package/dist/assets/{addon-D1_etOjl.js → addon-B1aBsfOX.js} +1 -1
- package/dist/assets/{advanced-CzJgEcda.js → advanced-C8t1232G.js} +1 -1
- package/dist/assets/{appearance-Bn0kYJHu.js → appearance-BIOmTg1q.js} +1 -1
- package/dist/assets/{audit-logs-DU66CSpw.js → audit-logs-SSAqJt40.js} +1 -1
- package/dist/assets/{base32-CLGITfm-.js → base32-iVyUiizz.js} +1 -1
- package/dist/assets/{branding-C5rNAfwW.js → branding-BDuOcSfH.js} +1 -1
- package/dist/assets/{branding-CiE421Dn.js → branding-NmIAi0kv.js} +2 -2
- package/dist/assets/{bundle-avatar-vSofRY4G.js → bundle-avatar-DfAWUEqX.js} +1 -1
- package/dist/assets/button-Kk1bqv_H.js +1 -0
- package/dist/assets/{click-to-copy-C9iEVQIO.js → click-to-copy-DCUroWft.js} +1 -1
- package/dist/assets/{complete-BeWyfTmK.js → complete-R99mlHBI.js} +1 -1
- package/dist/assets/{component-CZ948vh4.js → component-By64LaLD.js} +1 -1
- package/dist/assets/{config-DzZULB-q.js → config-BHBxeyYh.js} +1 -1
- package/dist/assets/{config-CFbM7U_5.js → config-BvNNOdw8.js} +1 -1
- package/dist/assets/config-navigation-CPd_4svD.js +26 -0
- package/dist/assets/{config-space-Drp9NI7a.js → config-space-BgWEAM0m.js} +1 -1
- package/dist/assets/{confirm-B9OqaJpT.js → confirm-92J4n1RP.js} +1 -1
- package/dist/assets/{connect-CpUC5BAX.js → connect-Bq-p3hnS.js} +1 -1
- package/dist/assets/connect-D20f2K4u.js +5 -0
- package/dist/assets/{connect-to-BasQxweP.js → connect-to-bQVCrkhh.js} +1 -1
- package/dist/assets/{content-layout-Bs-vdQ_U.js → content-layout-CFHoSupA.js} +1 -1
- package/dist/assets/{dashboard-BYUKOMAe.js → dashboard-BgQFc2Pc.js} +11 -11
- package/dist/assets/{delete-confirm-CM4f-ajO.js → delete-confirm-AkwIQ5yF.js} +1 -1
- package/dist/assets/{did-address-B_VfxEC5.js → did-address-D4v6iN2l.js} +1 -1
- package/dist/assets/domain-CBdLs2D9.js +9 -0
- package/dist/assets/{domain-action-card-pHkmKFE3.js → domain-action-card-DN3KjFwP.js} +2 -2
- package/dist/assets/domains-CMJbalsn.js +1 -0
- package/dist/assets/{email-C5iUsSjP.js → email-JviRloBo.js} +1 -1
- package/dist/assets/{empty-spinner-Cia24BVr.js → empty-spinner-DlzuJxRt.js} +1 -1
- package/dist/assets/{exchange-passport-CyGvLDal.js → exchange-passport-3aXbJr-q.js} +1 -1
- package/dist/assets/{fuel-C5H_z1Ay.js → fuel-DOs3bqYm.js} +1 -1
- package/dist/assets/{get-safe-url-BOY9UAaI.js → get-safe-url-CWgEUVPT.js} +1 -1
- package/dist/assets/{get-safe-url-D_Puq_oh.js → get-safe-url-eATw6wn7.js} +1 -1
- package/dist/assets/{home-CjHQSa_8.js → home-a0RwGUp7.js} +1 -1
- package/dist/assets/{iframe-BhRKCdFb.js → iframe-DVBEjxC1.js} +1 -1
- package/dist/assets/{index-Kaq7tC6c.js → index-3q6oLa2e.js} +1 -1
- package/dist/assets/{index-C5lvlGzp.js → index-BBl5mftj.js} +3 -3
- package/dist/assets/{index-d34Q6nXR.js → index-BGeUo-5w.js} +1 -1
- package/dist/assets/{index-Cp_gD4ZQ.js → index-BJYrBMyS.js} +1 -1
- package/dist/assets/{index-B8FtPEFx.js → index-BVOsgGKh.js} +1 -1
- package/dist/assets/{index-DUU3hQpo.js → index-BxTrfRkG.js} +1 -1
- package/dist/assets/index-C3-7zmeY.js +346 -0
- package/dist/assets/{index-BTOIZL6e.js → index-CCwUSMuP.js} +1 -1
- package/dist/assets/{index-CjmXl7jW.js → index-CwdXL2a0.js} +1 -1
- package/dist/assets/{index-Ctl8J5Z5.js → index-DBLdE2lQ.js} +1 -1
- package/dist/assets/{index-CVIeQOoE.js → index-DQIxR9j5.js} +1 -1
- package/dist/assets/index-DWuuU3ta.js +113 -0
- package/dist/assets/{index-Cuoxr9xB.js → index-DjIOxw8x.js} +1 -1
- package/dist/assets/{index-CYAgDp3G.js → index-DrUxhMM5.js} +1 -1
- package/dist/assets/index-K5iSHoYm.js +224 -0
- package/dist/assets/{index-DR9nQ2tJ.js → index-KLUHbsxg.js} +1 -1
- package/dist/assets/{index-BYsXlcQC.js → index-MqiIu4kd.js} +1 -1
- package/dist/assets/{index-BjYech25.js → index-Th4BUzmb.js} +23 -23
- package/dist/assets/{index-Du2DtxVt.js → index-VvWvVQT8.js} +1 -1
- package/dist/assets/{index-DkZfhapD.js → index-sv3a1ZUw.js} +1 -1
- package/dist/assets/{invitation-C9hFp_wD.js → invitation-CwtXOXZc.js} +4 -4
- package/dist/assets/{invite-CzfqL5Tx.js → invite-CMj5995Z.js} +1 -1
- package/dist/assets/{issue-passport-D3F63x7z.js → issue-passport-DtEbcgX6.js} +1 -1
- package/dist/assets/{item-C_TigVeC.js → item-zVdGBfMR.js} +1 -1
- package/dist/assets/{landing-page-B5nKEn_3.js → landing-page-BM1TmagN.js} +1 -1
- package/dist/assets/{launch-result-message-C0Ao1hE-.js → launch-result-message-DOa3SWMR.js} +1 -1
- package/dist/assets/{layout-D5ALyxXA.js → layout-DCzN0ui5.js} +1 -1
- package/dist/assets/{list-DuzdV0Wa.js → list-BuXPrN1N.js} +8 -8
- package/dist/assets/{list-header-BibBP5t1.js → list-header-BLGbkNad.js} +1 -1
- package/dist/assets/localization-qd6O0FX9.js +1 -0
- package/dist/assets/{log-Dg8IZoeo.js → log-C0ajhie8.js} +1 -1
- package/dist/assets/{logger-Bd77RetM.js → logger-D6n4nbwy.js} +1 -1
- package/dist/assets/{login-B9XiO8eS.js → login-f1AXbIm0.js} +1 -1
- package/dist/assets/{login-oauth-callback-5AlLzjZ2.js → login-oauth-callback-C5CFUlUR.js} +1 -1
- package/dist/assets/{logo-uploader-ChABQ_cS.js → logo-uploader-DbAVW3BS.js} +3 -3
- package/dist/assets/{lost-passport-gGzRW--h.js → lost-passport-Dlmv8D-L.js} +2 -2
- package/dist/assets/{open-window-CX_mRFPs.js → open-window-DskgWqba.js} +1 -1
- package/dist/assets/{overview-ClfPLbRa.js → overview-DY9-9zrL.js} +1 -1
- package/dist/assets/{page-header-DWf5vODI.js → page-header-XbzfRkA7.js} +1 -1
- package/dist/assets/{permission-CmHMB8NK.js → permission-Bi46fqEy.js} +1 -1
- package/dist/assets/{preferences-COMN8FgJ.js → preferences-DPpwnIAs.js} +1 -1
- package/dist/assets/{profile-embed-Crj1xM6Z.js → profile-embed-DV5vno0C.js} +1 -1
- package/dist/assets/publish-resource-z2_THSz6.js +1 -0
- package/dist/assets/{react-beautiful-dnd.esm-B3HYEQUw.js → react-beautiful-dnd.esm-B68lWn23.js} +1 -1
- package/dist/assets/{relative-time-CE47D6s7.js → relative-time-BeR_4mfM.js} +1 -1
- package/dist/assets/{runtime-CdKbOwQM.js → runtime-D6tESY33.js} +1 -1
- package/dist/assets/sdk-DNr-nKBq.js +1 -0
- package/dist/assets/{security-DmjkCoJ_.js → security-DmR541pi.js} +1 -1
- package/dist/assets/{session-0rF5SuCk.js → session-CJFbMNLl.js} +1 -1
- package/dist/assets/setup-BSsqBrsc.js +19 -0
- package/dist/assets/{shorten-label-DDBwv81M.js → shorten-label-BuH-7PI8.js} +1 -1
- package/dist/assets/{simple-select-vCKkiHhG.js → simple-select-DHvjqsw4.js} +1 -1
- package/dist/assets/{slicedToArray-Da5X2Yv5.js → slicedToArray-C0MW3KIe.js} +1 -1
- package/dist/assets/{spaces-CyFGYf34.js → spaces-gLUqr6Uq.js} +1 -1
- package/dist/assets/{start-CwSXw9Xs.js → start-XbVMHGiE.js} +1 -1
- package/dist/assets/{status-CgfGREVl.js → status-DmyvEkKL.js} +1 -1
- package/dist/assets/{step-actions-BNW8I1sI.js → step-actions-brdohYRv.js} +1 -1
- package/dist/assets/{studio-cLKWVbyy.js → studio-DJeZlIfF.js} +1 -1
- package/dist/assets/{switch-control-DpvMHPLC.js → switch-control-Br1YNOSB.js} +1 -1
- package/dist/assets/{traffic-ChJb5Oyl.js → traffic-LuIcK-L1.js} +1 -1
- package/dist/assets/{transfer-BHifjdxl.js → transfer-DboKwiA_.js} +1 -1
- package/dist/assets/{unsubscribe-CcyOqX8E.js → unsubscribe-C9k_L3g5.js} +1 -1
- package/dist/assets/{use-mobile-DjnNmGRG.js → use-mobile-C98e2dYy.js} +1 -1
- package/dist/assets/{use-mobile-DpXDDjat.js → use-mobile-CqLLcWbr.js} +1 -1
- package/dist/assets/useAsync-BxB2TpDl.js +1 -0
- package/dist/assets/useAsync-L7_fHBH5.js +1 -0
- package/dist/assets/useAsyncRetry-CEouAsle.js +7 -0
- package/dist/assets/{useLocalStorage-Cq9THoCr.js → useLocalStorage-0mjZfnua.js} +1 -1
- package/dist/assets/user-center-BaKv3X4J.js +77 -0
- package/dist/assets/{util-1n1Ulk5w.js → util-DLK92HF8.js} +1 -1
- package/dist/assets/{util-BmbbisPE.js → util-YnaMqM3B.js} +1 -1
- package/dist/assets/{vendor-arcblock-V3HYELzG.js → vendor-arcblock-DPMnO1AO.js} +83 -83
- package/dist/assets/{vendor-mui-core-1jJmAutq.js → vendor-mui-core-x3zpe_j_.js} +1 -1
- package/dist/assets/{vendor-mui-x-CPwlD3uT.js → vendor-mui-x-CPOc4sOK.js} +1 -1
- package/dist/assets/{vendor-ux-did-connect-DEbq97Xz.js → vendor-ux-did-connect-B1u6nvmg.js} +7 -7
- package/dist/assets/{wrap-locale-5LSB6OAr.js → wrap-locale-m_NRjq-h.js} +1 -1
- package/dist/index.html +4 -4
- package/dist/service-worker.js +1 -1
- package/package.json +30 -30
- package/dist/assets/button-BSJ2z68-.js +0 -1
- package/dist/assets/config-navigation-hrdLDyFZ.js +0 -26
- package/dist/assets/connect-0zFqdTRm.js +0 -5
- package/dist/assets/domain-D0xqhxvZ.js +0 -9
- package/dist/assets/domains-BrNRyjCn.js +0 -1
- package/dist/assets/index-Bee_YcJC.js +0 -113
- package/dist/assets/index-D3YZfNxX.js +0 -5
- package/dist/assets/index-DFoYVoMG.js +0 -346
- package/dist/assets/index-Dzvf3kMf.js +0 -220
- package/dist/assets/localization-WUgLuLwU.js +0 -1
- package/dist/assets/publish-resource-C6TOyrHC.js +0 -1
- package/dist/assets/sdk-j4w1A_X4.js +0 -1
- package/dist/assets/setup-DLCw2h80.js +0 -19
- package/dist/assets/useAsync-BENTIUEf.js +0 -1
- package/dist/assets/useAsyncRetry-DSYkC9r5.js +0 -7
- package/dist/assets/user-center-DfDG_giT.js +0 -77
package/api/index.js
CHANGED
|
@@ -234,6 +234,36 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
234
234
|
}
|
|
235
235
|
});
|
|
236
236
|
});
|
|
237
|
+
[BlockletEvents.removed].forEach((name) => {
|
|
238
|
+
eventHub.on(name, (data) => {
|
|
239
|
+
const did = get(data, 'appDid') || get(data, 'meta.did');
|
|
240
|
+
if (did) {
|
|
241
|
+
node
|
|
242
|
+
.destroyTeamStates(did)
|
|
243
|
+
.then(() => {
|
|
244
|
+
logger.info('destroy team states on blocklet removed', { name, did });
|
|
245
|
+
})
|
|
246
|
+
.catch((error) => {
|
|
247
|
+
logger.error('Failed to destroy team states on blocklet removed', { name, did, error });
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
[BlockletEvents.installed, BlockletInternalEvents.componentInstalled].forEach((name) => {
|
|
253
|
+
eventHub.on(name, (data) => {
|
|
254
|
+
const did = get(data, 'appDid') || get(data, 'meta.did');
|
|
255
|
+
if (did) {
|
|
256
|
+
node
|
|
257
|
+
.createTeamStates(did)
|
|
258
|
+
.then(() => {
|
|
259
|
+
logger.info('create team states on blocklet installed', { name, did });
|
|
260
|
+
})
|
|
261
|
+
.catch((error) => {
|
|
262
|
+
logger.error('Failed to create team states on blocklet installed', { name, did, error });
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
});
|
|
237
267
|
eventHub.on(BlockletEvents.securityConfigUpdated, ({ did }) => {
|
|
238
268
|
// 检测到安全配置更新后,需要批量删除指定前缀的 cache(会包含整个 blocklet 所有的 security cache)
|
|
239
269
|
logger.info('blocklet securityConfig update', { did, pid: process.pid });
|
|
@@ -362,8 +392,7 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
362
392
|
...whitelist.official,
|
|
363
393
|
...iconifyDomains,
|
|
364
394
|
].filter(Boolean),
|
|
365
|
-
|
|
366
|
-
fontSrc: ["'self'", 'https://fonts.gstatic.com'],
|
|
395
|
+
fontSrc: ["'self'", 'data:', 'https://fonts.gstatic.com'],
|
|
367
396
|
connectSrc: uniq(
|
|
368
397
|
[
|
|
369
398
|
"'self'",
|
|
@@ -599,6 +628,7 @@ self.blocklet = {
|
|
|
599
628
|
|
|
600
629
|
// Auth: login token and user info
|
|
601
630
|
server.use(authMiddlewares.sessionBearerToken);
|
|
631
|
+
// FIXME: @zhanghan 这里的逻辑会导致对当前会话的校验是否强制注销失败,暂时先只在 req.ensureUser 进行增强处理。后续需要考虑完整的 auth 鉴权层
|
|
602
632
|
server.use(authMiddlewares.userInfo);
|
|
603
633
|
|
|
604
634
|
// API: gql
|
|
@@ -3,7 +3,7 @@ const { getSignData } = require('@blocklet/sdk/lib/util/verify-sign');
|
|
|
3
3
|
const getBlockletInfo = require('@blocklet/meta/lib/info');
|
|
4
4
|
const { joinURL } = require('ufo');
|
|
5
5
|
const pRetry = require('p-retry');
|
|
6
|
-
|
|
6
|
+
const pMap = require('p-map');
|
|
7
7
|
const { api } = require('../api');
|
|
8
8
|
const logger = require('../logger')('blocklet-services:notification');
|
|
9
9
|
|
|
@@ -42,18 +42,23 @@ async function sendPush(receiver, notification, { node, teamDid }) {
|
|
|
42
42
|
throw new Error(`Invalid push kit endpoint: ${config.endpoint}`);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
const userSessionList = await pMap(
|
|
46
|
+
receiver,
|
|
47
|
+
async (x) => {
|
|
48
|
+
const result = await node.getUserSessions({
|
|
49
|
+
teamDid,
|
|
50
|
+
query: {
|
|
51
|
+
userDid: x,
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
return result.list;
|
|
51
55
|
},
|
|
52
|
-
|
|
56
|
+
{ concurrency: 10 }
|
|
57
|
+
);
|
|
53
58
|
|
|
54
|
-
const targets =
|
|
55
|
-
if (
|
|
56
|
-
|
|
59
|
+
const targets = userSessionList.reduce((acc, userSessions) => {
|
|
60
|
+
if (userSessions?.length > 0) {
|
|
61
|
+
userSessions.forEach((x) => {
|
|
57
62
|
// NOTICE: 这里需要转为小写来判断
|
|
58
63
|
const platform = x?.extra?.walletOS?.toLowerCase();
|
|
59
64
|
// 兼容处理,支持读取 walletDeviceMessageToken
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable no-await-in-loop */
|
|
2
2
|
const {
|
|
3
3
|
WELLKNOWN_SERVICE_PATH_PREFIX,
|
|
4
|
-
SESSION_TTL,
|
|
5
4
|
PASSPORT_LOG_ACTION,
|
|
6
5
|
PASSPORT_STATUS,
|
|
6
|
+
SESSION_TTL,
|
|
7
7
|
} = require('@abtnode/constant');
|
|
8
8
|
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
9
9
|
const pick = require('lodash/pick');
|
|
@@ -13,7 +13,7 @@ const omit = require('lodash/omit');
|
|
|
13
13
|
const pLimit = require('p-limit');
|
|
14
14
|
const { getSourceProvider } = require('@blocklet/meta/lib/did-utils');
|
|
15
15
|
const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
16
|
-
const { getFederatedMembers, getFederatedMaster } = require('@abtnode/auth/lib/util/federated');
|
|
16
|
+
const { getFederatedMembers, getFederatedMaster, findFederatedSite } = require('@abtnode/auth/lib/util/federated');
|
|
17
17
|
const { messages } = require('@abtnode/auth/lib/auth');
|
|
18
18
|
const { Joi } = require('@arcblock/validator');
|
|
19
19
|
const { getDeviceData } = require('@abtnode/util/lib/device');
|
|
@@ -51,12 +51,16 @@ async function getPassportFromFederatedSite(passportId, { appPid, node, teamDid,
|
|
|
51
51
|
return undefined;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
function patchUserSessionStatus(userSession, { blocklet }) {
|
|
55
55
|
const sessionTtl = blocklet.settings?.session?.ttl || SESSION_TTL;
|
|
56
56
|
// 修正当前 session 的 status,如果超出时间了,则应该显示为过期
|
|
57
57
|
if (Date.now() - new Date(userSession.updatedAt).getTime() > sessionTtl * 1000) {
|
|
58
58
|
userSession.status = 'expired';
|
|
59
59
|
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async function patchUserSessionData(userSession, { blocklet, appPid, teamDid, node }) {
|
|
63
|
+
patchUserSessionStatus(userSession, { blocklet });
|
|
60
64
|
// 修正 avatar 地址,从 bn:// 转换为 http
|
|
61
65
|
if (userSession.user?.avatar) {
|
|
62
66
|
userSession.user.avatar = getUserAvatarUrl(userSession.user.avatar, blocklet);
|
|
@@ -154,9 +158,8 @@ module.exports = {
|
|
|
154
158
|
}
|
|
155
159
|
|
|
156
160
|
const teamDid = blocklet.appPid;
|
|
157
|
-
const
|
|
161
|
+
const validSession = await node.getUserSession({
|
|
158
162
|
teamDid,
|
|
159
|
-
userDid: validUserSession.userDid,
|
|
160
163
|
id: validUserSession.id,
|
|
161
164
|
});
|
|
162
165
|
|
|
@@ -338,35 +341,31 @@ module.exports = {
|
|
|
338
341
|
|
|
339
342
|
app.get(`${prefix}/myself`, ensureBlocklet(), checkUser, async (req, res) => {
|
|
340
343
|
const { blocklet } = req;
|
|
341
|
-
const {
|
|
342
|
-
const teamDid = appPid;
|
|
344
|
+
const { page, pageSize, status } = req.query;
|
|
345
|
+
const teamDid = blocklet.appPid;
|
|
343
346
|
const userDid = req.user.did;
|
|
344
347
|
// 用户管理自己所有的登录会话,不限制 visitorId
|
|
345
|
-
const userSessions = await node.
|
|
348
|
+
const { list: userSessions, paging } = await node.getUserSessions({
|
|
346
349
|
teamDid,
|
|
347
|
-
|
|
348
|
-
|
|
350
|
+
query: {
|
|
351
|
+
appPid: teamDid, // 不需要向主站查询 member 的会话列表,所以固定为 teamDid 即可
|
|
352
|
+
userDid,
|
|
353
|
+
status,
|
|
354
|
+
},
|
|
355
|
+
paging: {
|
|
356
|
+
page: parseInt(page, 10),
|
|
357
|
+
pageSize: parseInt(pageSize, 10),
|
|
358
|
+
},
|
|
349
359
|
});
|
|
350
360
|
|
|
351
|
-
const
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
)
|
|
360
|
-
);
|
|
361
|
-
await Promise.all(pendingList);
|
|
362
|
-
|
|
363
|
-
const result = userSessions
|
|
364
|
-
.filter((x) => {
|
|
365
|
-
return x?.user?.approved;
|
|
366
|
-
})
|
|
367
|
-
.map((x) => omit(x, userInfoBlackList));
|
|
368
|
-
|
|
369
|
-
res.json(result);
|
|
361
|
+
const list = userSessions.map((x) => {
|
|
362
|
+
patchUserSessionStatus(x, { blocklet });
|
|
363
|
+
return omit(x, userInfoBlackList);
|
|
364
|
+
});
|
|
365
|
+
res.json({
|
|
366
|
+
list,
|
|
367
|
+
paging,
|
|
368
|
+
});
|
|
370
369
|
});
|
|
371
370
|
|
|
372
371
|
/**
|
|
@@ -381,8 +380,6 @@ module.exports = {
|
|
|
381
380
|
const { appPid } = blocklet;
|
|
382
381
|
const teamDid = appPid;
|
|
383
382
|
|
|
384
|
-
const federatedSites = blocklet?.settings?.federated?.sites || [];
|
|
385
|
-
|
|
386
383
|
const visitorId = req.get('x-blocklet-visitor-id');
|
|
387
384
|
|
|
388
385
|
if (!visitorId) {
|
|
@@ -390,19 +387,34 @@ module.exports = {
|
|
|
390
387
|
return;
|
|
391
388
|
}
|
|
392
389
|
|
|
393
|
-
const userSessions = await node.
|
|
390
|
+
const { list: userSessions } = await node.getUserSessions({
|
|
394
391
|
teamDid,
|
|
395
|
-
|
|
392
|
+
query: {
|
|
393
|
+
visitorId,
|
|
394
|
+
includeUser: true,
|
|
395
|
+
},
|
|
396
|
+
paging: {
|
|
397
|
+
page: 1,
|
|
398
|
+
// 模拟获取所有登录会话
|
|
399
|
+
pageSize: 100,
|
|
400
|
+
},
|
|
396
401
|
});
|
|
397
402
|
|
|
398
403
|
const validUserSessions = userSessions.filter((x) => {
|
|
399
|
-
|
|
400
|
-
if (federatedSite?.appPid === teamDid) {
|
|
404
|
+
if (x.appPid === teamDid) {
|
|
401
405
|
return true;
|
|
402
406
|
}
|
|
403
|
-
|
|
404
|
-
|
|
407
|
+
|
|
408
|
+
const federatedSite = findFederatedSite(blocklet, x.appPid);
|
|
409
|
+
if (federatedSite) {
|
|
410
|
+
if (federatedSite.appPid === teamDid) {
|
|
411
|
+
return true;
|
|
412
|
+
}
|
|
413
|
+
if (federatedSite.status === 'approved') {
|
|
414
|
+
return true;
|
|
415
|
+
}
|
|
405
416
|
}
|
|
417
|
+
|
|
406
418
|
return false;
|
|
407
419
|
});
|
|
408
420
|
const pendingList = validUserSessions.map((item) =>
|
|
@@ -419,9 +431,6 @@ module.exports = {
|
|
|
419
431
|
|
|
420
432
|
const result = validUserSessions
|
|
421
433
|
.filter((x) => {
|
|
422
|
-
if (x.status === 'expired') {
|
|
423
|
-
return false;
|
|
424
|
-
}
|
|
425
434
|
if (!x?.user?.approved) {
|
|
426
435
|
return false;
|
|
427
436
|
}
|
package/api/routes/user.js
CHANGED
|
@@ -25,6 +25,7 @@ const { withQuery, joinURL } = require('ufo');
|
|
|
25
25
|
const cors = require('cors');
|
|
26
26
|
const createTranslator = require('@abtnode/util/lib/translate');
|
|
27
27
|
const { getDeviceData } = require('@abtnode/util/lib/device');
|
|
28
|
+
const { Op } = require('sequelize');
|
|
28
29
|
|
|
29
30
|
const { createTokenFn, getDidConnectVersion } = require('../util');
|
|
30
31
|
const initJwt = require('../libs/jwt');
|
|
@@ -921,18 +922,29 @@ module.exports = {
|
|
|
921
922
|
const { blocklet } = req;
|
|
922
923
|
const teamDid = blocklet.appPid;
|
|
923
924
|
// NOTICE: 此处需要保留从 body 携带 visitorId 的功能,用于已登录用户注销自己指定的登录会话
|
|
924
|
-
|
|
925
|
+
// eslint-disable-next-line prefer-const
|
|
926
|
+
let { status, visitorId } = req.body;
|
|
927
|
+
const params = {};
|
|
925
928
|
if (!visitorId) {
|
|
926
929
|
visitorId = req.get('x-blocklet-visitor-id');
|
|
927
930
|
}
|
|
928
|
-
if (
|
|
929
|
-
|
|
931
|
+
if (status) {
|
|
932
|
+
params.status = status;
|
|
933
|
+
if (visitorId && status === 'online') {
|
|
934
|
+
// HACK: 用户使用当前登录会话注销所有会话时,要排除当前登录会话
|
|
935
|
+
params.visitorId = { [Op.ne]: visitorId };
|
|
936
|
+
}
|
|
937
|
+
} else if (visitorId) {
|
|
938
|
+
params.visitorId = visitorId;
|
|
939
|
+
}
|
|
940
|
+
if (!params.visitorId && !params.status) {
|
|
941
|
+
res.status(400).json({ error: 'visitorId or status is required' });
|
|
930
942
|
return;
|
|
931
943
|
}
|
|
932
944
|
|
|
933
945
|
await node.logoutUser({
|
|
946
|
+
...params,
|
|
934
947
|
userDid: req.user.did,
|
|
935
|
-
visitorId,
|
|
936
948
|
appPid: teamDid,
|
|
937
949
|
teamDid,
|
|
938
950
|
});
|
|
@@ -17,10 +17,32 @@ const getRequestIP = require('@abtnode/util/lib/get-request-ip');
|
|
|
17
17
|
const { getDeviceData } = require('@abtnode/util/lib/device');
|
|
18
18
|
const isUrl = require('is-url');
|
|
19
19
|
const { LRUCache } = require('lru-cache');
|
|
20
|
+
const createTranslator = require('@abtnode/util/lib/translate');
|
|
20
21
|
|
|
21
22
|
const { createTokenFn, getDidConnectVersion } = require('../../util');
|
|
22
23
|
const checkUser = require('../../middlewares/check-user');
|
|
23
24
|
|
|
25
|
+
const translations = {
|
|
26
|
+
zh: {
|
|
27
|
+
userSessionLogout: '用户会话已退出',
|
|
28
|
+
invalidWebhookType: '无效的 webhook 类型',
|
|
29
|
+
invalidWebhookUrl: '无效的 webhook 地址',
|
|
30
|
+
testWebhookMessage: '这是来自 {did} 的测试消息',
|
|
31
|
+
invalidToken: '无效的 token',
|
|
32
|
+
emptyRefreshToken: 'RefreshToken 不能为空',
|
|
33
|
+
},
|
|
34
|
+
en: {
|
|
35
|
+
userSessionLogout: 'User session is logout',
|
|
36
|
+
invalidWebhookType: 'Invalid webhook type',
|
|
37
|
+
invalidWebhookUrl: 'Invalid webhook url',
|
|
38
|
+
testWebhookMessage: 'This is a test message from user {did}',
|
|
39
|
+
invalidToken: 'Invalid token',
|
|
40
|
+
emptyRefreshToken: 'RefreshToken should not be empty',
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const t = createTranslator({ translations });
|
|
45
|
+
|
|
24
46
|
const sessionRBACCache = new LRUCache({ max: 3000, ttl: 1000 * 30 });
|
|
25
47
|
const unReadCountCache = new LRUCache({ max: 3000, ttl: 1000 * 5 });
|
|
26
48
|
|
|
@@ -176,13 +198,14 @@ module.exports = {
|
|
|
176
198
|
|
|
177
199
|
const sessionApi = `${WELLKNOWN_SERVICE_PATH_PREFIX}/api/did/session`;
|
|
178
200
|
router.get(sessionApi, nocache(), sessionBearerToken, handleSession);
|
|
201
|
+
router.post(sessionApi, nocache(), sessionBearerToken, handleSession);
|
|
202
|
+
|
|
179
203
|
router.get(
|
|
180
204
|
`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/notifications/unread-count`,
|
|
181
205
|
nocache(),
|
|
182
206
|
sessionBearerToken,
|
|
183
207
|
handleGetUnreadCount
|
|
184
208
|
);
|
|
185
|
-
router.post(sessionApi, nocache(), sessionBearerToken, handleSession);
|
|
186
209
|
|
|
187
210
|
// update user extra: settings, webhooks
|
|
188
211
|
const extraApi = `${WELLKNOWN_SERVICE_PATH_PREFIX}/api/user/extra`;
|
|
@@ -207,17 +230,17 @@ module.exports = {
|
|
|
207
230
|
});
|
|
208
231
|
router.put(extraApi, nocache(), sessionBearerToken, checkUser, async (req, res) => {
|
|
209
232
|
if (['slack', 'api'].includes(req.body.type) === false) {
|
|
210
|
-
res.status(400).send({ error: '
|
|
233
|
+
res.status(400).send({ error: t('invalidWebhookType', req.blockletLocale) });
|
|
211
234
|
return;
|
|
212
235
|
}
|
|
213
236
|
|
|
214
237
|
if (isUrl(req.body.url) === false) {
|
|
215
|
-
res.status(400).send({ error: '
|
|
238
|
+
res.status(400).send({ error: t('invalidWebhookUrl', req.blockletLocale) });
|
|
216
239
|
}
|
|
217
240
|
|
|
218
241
|
await node.sendTestMessage({
|
|
219
242
|
webhook: { type: req.body.type, params: [{ name: 'url', value: req.body.url }] },
|
|
220
|
-
message:
|
|
243
|
+
message: t('testWebhookMessage', req.blockletLocale, { did: req.user.did }),
|
|
221
244
|
});
|
|
222
245
|
|
|
223
246
|
res.json({ success: true });
|
|
@@ -227,7 +250,7 @@ module.exports = {
|
|
|
227
250
|
const { wallet } = await req.getBlockletInfo();
|
|
228
251
|
const { token } = req.body;
|
|
229
252
|
if (!verify(token, wallet.publicKey)) {
|
|
230
|
-
res.status(403).send('
|
|
253
|
+
res.status(403).send(t('invalidToken', req.blockletLocale));
|
|
231
254
|
return;
|
|
232
255
|
}
|
|
233
256
|
|
|
@@ -258,10 +281,14 @@ module.exports = {
|
|
|
258
281
|
if (token) {
|
|
259
282
|
const teamDid = req.getBlockletDid();
|
|
260
283
|
const visitorId = req.get('x-blocklet-visitor-id');
|
|
284
|
+
if (!visitorId) {
|
|
285
|
+
res.status(400).send(t('userSessionLogout', req.blockletLocale));
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
261
288
|
const { appPid = teamDid } = req.query;
|
|
262
289
|
await req.ensureUser({ token, visitorId, appPid });
|
|
263
290
|
if (!req.user) {
|
|
264
|
-
res.status(400).send('
|
|
291
|
+
res.status(400).send(t('userSessionLogout', req.blockletLocale));
|
|
265
292
|
return;
|
|
266
293
|
}
|
|
267
294
|
|
|
@@ -279,9 +306,9 @@ module.exports = {
|
|
|
279
306
|
} = await verifySessionToken(token, secret, {
|
|
280
307
|
checkFromDb: true,
|
|
281
308
|
teamDid,
|
|
282
|
-
checkToken: (
|
|
283
|
-
if (
|
|
284
|
-
throw new Error(`invalid token type ${
|
|
309
|
+
checkToken: (_token) => {
|
|
310
|
+
if (_token.tokenType !== refreshTokenType) {
|
|
311
|
+
throw new Error(`invalid token type ${_token.tokenType}`);
|
|
285
312
|
}
|
|
286
313
|
},
|
|
287
314
|
locale: req.blockletLocale,
|
|
@@ -368,7 +395,7 @@ module.exports = {
|
|
|
368
395
|
res.status(400).send(err.message);
|
|
369
396
|
}
|
|
370
397
|
} else {
|
|
371
|
-
res.status(400).send('
|
|
398
|
+
res.status(400).send(t('emptyRefreshToken', req.blockletLocale));
|
|
372
399
|
}
|
|
373
400
|
});
|
|
374
401
|
},
|
|
@@ -171,15 +171,22 @@ module.exports = ({ node, req, options }) => {
|
|
|
171
171
|
const user = await verifySessionToken(token, secret, opt);
|
|
172
172
|
|
|
173
173
|
if (user && visitorId) {
|
|
174
|
-
|
|
174
|
+
// 这里只取第一个有效的会话
|
|
175
|
+
const { list: userSessions } = await node.getUserSessions({
|
|
175
176
|
teamDid,
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
177
|
+
query: {
|
|
178
|
+
appPid,
|
|
179
|
+
userDid: user.did,
|
|
180
|
+
visitorId,
|
|
181
|
+
},
|
|
179
182
|
});
|
|
180
|
-
|
|
183
|
+
// 获取用户会话
|
|
184
|
+
if (userSessions.length > 0) {
|
|
185
|
+
const [userSession] = userSessions;
|
|
181
186
|
req.userSession = userSession;
|
|
182
187
|
} else {
|
|
188
|
+
// HACK: 需要强制设置为 null,因为在 core/blocklet-services/api/index.js L603 中会给 req.user 赋值
|
|
189
|
+
req.user = null;
|
|
183
190
|
return;
|
|
184
191
|
}
|
|
185
192
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a2 as e,j as t}from"./vendor-mui-core-
|
|
1
|
+
import{a2 as e,j as t}from"./vendor-mui-core-x3zpe_j_.js";import{r as a}from"./vendor-ux-did-connect-B1u6nvmg.js";var r={},o=e;Object.defineProperty(r,"__esModule",{value:!0});var u=r.default=void 0,i=o(a()),p=t;u=r.default=(0,i.default)((0,p.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");export{u as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a2 as r,j as t}from"./vendor-mui-core-
|
|
1
|
+
import{a2 as r,j as t}from"./vendor-mui-core-x3zpe_j_.js";import{r as a}from"./vendor-ux-did-connect-B1u6nvmg.js";var e={},o=r;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,i=o(a()),l=t;u=e.default=(0,i.default)((0,l.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z"}),"CheckCircle");export{u as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a2 as r,j as t}from"./vendor-mui-core-
|
|
1
|
+
import{a2 as r,j as t}from"./vendor-mui-core-x3zpe_j_.js";import{r as a}from"./vendor-ux-did-connect-B1u6nvmg.js";var e={},o=r;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,f=o(a()),i=t;u=e.default=(0,f.default)((0,i.jsx)("path",{d:"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"ChevronLeft");export{u as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a2 as r,j as t}from"./vendor-mui-core-
|
|
1
|
+
import{a2 as r,j as t}from"./vendor-mui-core-x3zpe_j_.js";import{r as a}from"./vendor-ux-did-connect-B1u6nvmg.js";var e={},o=r;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,i=o(a()),v=t;u=e.default=(0,i.default)((0,v.jsx)("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"ChevronRight");export{u as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./vendor-react-DEoibe3W.js";import{j as h}from"./vendor-mui-core-1jJmAutq.js";var H=function(Y){return h.jsxs("svg",{...Y,children:[h.jsx("rect",{width:"25",height:"25",fill:"url(#pattern0_68_4738)"}),h.jsxs("defs",{children:[h.jsx("pattern",{id:"pattern0_68_4738",patternContentUnits:"objectBoundingBox",width:"1",height:"1",children:h.jsx("use",{xlinkHref:"#image0_68_4738",transform:"scale(0.00833333)"})}),h.jsx("image",{id:"image0_68_4738",width:"120",height:"120",preserveAspectRatio:"none",xlinkHref:"data:image/png;base64,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"})]})]})};H.defaultProps={width:"25",height:"25",viewBox:"0 0 25 25",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"};H.displayName="commuting";export{H as default};
|
|
1
|
+
import"./vendor-react-DEoibe3W.js";import{j as h}from"./vendor-mui-core-x3zpe_j_.js";var H=function(Y){return h.jsxs("svg",{...Y,children:[h.jsx("rect",{width:"25",height:"25",fill:"url(#pattern0_68_4738)"}),h.jsxs("defs",{children:[h.jsx("pattern",{id:"pattern0_68_4738",patternContentUnits:"objectBoundingBox",width:"1",height:"1",children:h.jsx("use",{xlinkHref:"#image0_68_4738",transform:"scale(0.00833333)"})}),h.jsx("image",{id:"image0_68_4738",width:"120",height:"120",preserveAspectRatio:"none",xlinkHref:"data:image/png;base64,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"})]})]})};H.defaultProps={width:"25",height:"25",viewBox:"0 0 25 25",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"};H.displayName="commuting";export{H as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a2 as t,j as r}from"./vendor-mui-core-
|
|
1
|
+
import{a2 as t,j as r}from"./vendor-mui-core-x3zpe_j_.js";import{r as a}from"./vendor-ux-did-connect-B1u6nvmg.js";var e={},u=t;Object.defineProperty(e,"__esModule",{value:!0});var o=e.default=void 0,i=u(a()),l=r;o=e.default=(0,i.default)((0,l.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5-1-1h-5l-1 1H5v2h14V4z"}),"DeleteOutline");export{o as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a2 as r,j as t}from"./vendor-mui-core-
|
|
1
|
+
import{a2 as r,j as t}from"./vendor-mui-core-x3zpe_j_.js";import{r as a}from"./vendor-ux-did-connect-B1u6nvmg.js";var e={},o=r;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,i=o(a()),l=t;u=e.default=(0,i.default)((0,l.jsx)("path",{d:"M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"}),"Done");export{u as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a2 as r,j as a}from"./vendor-mui-core-
|
|
1
|
+
import{a2 as r,j as a}from"./vendor-mui-core-x3zpe_j_.js";import{r as t}from"./vendor-ux-did-connect-B1u6nvmg.js";var e={},o=r;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,d=o(t()),i=a;u=e.default=(0,d.default)((0,i.jsx)("path",{d:"M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z"}),"Download");export{u as d};
|