@abtnode/auth 1.17.2-beta-20251113-233840-b720c2e6 → 1.17.2-beta-20251114-122922-4319f1ac

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.
@@ -19,6 +19,7 @@ const {
19
19
  PASSPORT_SOURCE,
20
20
  PASSPORT_LOG_ACTION,
21
21
  PASSPORT_ISSUE_ACTION,
22
+ USER_SESSION_STATUS,
22
23
  } = require('@abtnode/constant');
23
24
  const { getUserAvatarUrl, getAppAvatarUrl, getServerAvatarUrl, extractUserAvatar } = require('@abtnode/util/lib/user');
24
25
  const getRequestIP = require('@abtnode/util/lib/get-request-ip');
@@ -428,7 +429,7 @@ const createLostPassportIssueRoute = ({ node, type, authServicePrefix, createTok
428
429
  userDid: userPid,
429
430
  appPid: teamDid,
430
431
  passportId: passport?.id,
431
- status: 'online',
432
+ status: USER_SESSION_STATUS.ONLINE,
432
433
  ua: null,
433
434
  lastLoginIp,
434
435
  extra: {
@@ -439,7 +440,7 @@ const createLostPassportIssueRoute = ({ node, type, authServicePrefix, createTok
439
440
  origin: await getOrigin({ req }),
440
441
  });
441
442
 
442
- if (shouldSyncFederated(sourceAppPid, blocklet)) {
443
+ if (shouldSyncFederated(blocklet, sourceAppPid)) {
443
444
  const masterSite = getFederatedMaster(blocklet);
444
445
  await node.syncFederated({
445
446
  did: teamDid,
package/lib/oauth.js CHANGED
@@ -2,7 +2,7 @@
2
2
  const uniq = require('lodash/uniq');
3
3
  const { getActivePassports } = require('@abtnode/util/lib/passport');
4
4
  const { getAppAvatarUrl, getUserAvatarUrl } = require('@abtnode/util/lib/user');
5
- const { ROLES } = require('@abtnode/constant');
5
+ const { ROLES, USER_SESSION_STATUS } = require('@abtnode/constant');
6
6
  const formatContext = require('@abtnode/util/lib/format-context');
7
7
  const { getBlockletAppIdList } = require('@blocklet/meta/lib/util');
8
8
  const { LOGIN_PROVIDER } = require('@blocklet/constant');
@@ -101,7 +101,7 @@ function createPassportSwitcher(node, createToken, mode = 'server') {
101
101
  visitorId,
102
102
  appPid: teamDid,
103
103
  passportId: passport?.id ?? null,
104
- status: 'online',
104
+ status: USER_SESSION_STATUS.ONLINE,
105
105
  locale: req.blockletLocale,
106
106
  origin: await getOrigin({ req }),
107
107
  });
package/lib/passkey.js CHANGED
@@ -2,7 +2,7 @@ const pick = require('lodash/pick');
2
2
  const { joinURL } = require('ufo');
3
3
  const { Joi } = require('@arcblock/validator');
4
4
  const { fromPublicKey } = require('@ocap/wallet');
5
- const { ROLES, PASSPORT_STATUS, WELLKNOWN_BLOCKLET_ADMIN_PATH } = require('@abtnode/constant');
5
+ const { ROLES, PASSPORT_STATUS, WELLKNOWN_BLOCKLET_ADMIN_PATH, USER_SESSION_STATUS } = require('@abtnode/constant');
6
6
  const { LOGIN_PROVIDER } = require('@blocklet/constant');
7
7
  const { WELLKNOWN_SERVICE_PATH_PREFIX, SECURITY_RULE_DEFAULT_ID } = require('@abtnode/constant');
8
8
  const { fromBase64, toBase64, toBuffer, toUint8Array, toHex } = require('@ocap/util');
@@ -589,7 +589,7 @@ function createPasskeyHandlers(node, mode, createToken) {
589
589
  visitorId: req.get('x-blocklet-visitor-id'),
590
590
  appPid: teamDid,
591
591
  passportId: null,
592
- status: 'online',
592
+ status: USER_SESSION_STATUS.ONLINE,
593
593
  ua,
594
594
  lastLoginIp: getRequestIP(req),
595
595
  extra: {
@@ -253,7 +253,7 @@ module.exports = {
253
253
  if (isService) {
254
254
  const masterSite = getFederatedMaster(blocklet);
255
255
  // NOTICE: 采用异步来更新,不阻塞接口的正常响应
256
- if (shouldSyncFederated(sourceAppPid, blocklet)) {
256
+ if (shouldSyncFederated(blocklet, sourceAppPid)) {
257
257
  const syncUserData = {
258
258
  did: oauthUser.did,
259
259
  pk: oauthUser.pk,
@@ -42,6 +42,20 @@ function getUserAvatarUrl(avatar, blocklet) {
42
42
  return avatarUrl;
43
43
  }
44
44
 
45
+ function getFederatedEnabled(blocklet) {
46
+ if (!blocklet) {
47
+ return false;
48
+ }
49
+ const master = getFederatedMaster(blocklet);
50
+ // 如果当前应用是 master,则代表未开启统一登录
51
+ if (!master || master.appPid === blocklet.appPid) {
52
+ return false;
53
+ }
54
+
55
+ const member = findFederatedSite(blocklet, blocklet.appPid);
56
+ return member?.status === 'approved';
57
+ }
58
+
45
59
  function getFederatedMaster(blocklet) {
46
60
  const { sites } = blocklet?.settings?.federated || {};
47
61
  const masterSite = (sites || []).find((item) => isMaster(item));
@@ -58,7 +72,7 @@ function getFederatedMembers(blocklet, status = 'approved') {
58
72
  });
59
73
  }
60
74
 
61
- function shouldSyncFederated(sourceAppPid, blocklet) {
75
+ function shouldSyncFederated(blocklet, sourceAppPid) {
62
76
  if (sourceAppPid) {
63
77
  return true;
64
78
  }
@@ -293,6 +307,7 @@ module.exports = {
293
307
  getFederatedSiteEnv,
294
308
  getUserAvatarUrl,
295
309
  shouldSyncFederated,
310
+ getFederatedEnabled,
296
311
  getFederatedMaster,
297
312
  getFederatedMembers,
298
313
  findFederatedSite,
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.17.2-beta-20251113-233840-b720c2e6",
6
+ "version": "1.17.2-beta-20251114-122922-4319f1ac",
7
7
  "description": "Simple lib to manage auth in ABT Node",
8
8
  "main": "lib/index.js",
9
9
  "files": [
@@ -18,25 +18,25 @@
18
18
  "author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
19
19
  "license": "Apache-2.0",
20
20
  "dependencies": {
21
- "@abtnode/constant": "1.17.2-beta-20251113-233840-b720c2e6",
22
- "@abtnode/logger": "1.17.2-beta-20251113-233840-b720c2e6",
23
- "@abtnode/util": "1.17.2-beta-20251113-233840-b720c2e6",
24
- "@arcblock/did": "^1.27.4",
25
- "@arcblock/did-connect-js": "^1.27.4",
26
- "@arcblock/did-ext": "^1.27.4",
27
- "@arcblock/did-util": "^1.27.4",
28
- "@arcblock/jwt": "^1.27.4",
29
- "@arcblock/nft-display": "^3.2.3",
30
- "@arcblock/validator": "^1.27.4",
31
- "@arcblock/vc": "^1.27.4",
32
- "@blocklet/constant": "1.17.2-beta-20251113-233840-b720c2e6",
21
+ "@abtnode/constant": "1.17.2-beta-20251114-122922-4319f1ac",
22
+ "@abtnode/logger": "1.17.2-beta-20251114-122922-4319f1ac",
23
+ "@abtnode/util": "1.17.2-beta-20251114-122922-4319f1ac",
24
+ "@arcblock/did": "^1.27.6",
25
+ "@arcblock/did-connect-js": "^1.27.6",
26
+ "@arcblock/did-ext": "^1.27.6",
27
+ "@arcblock/did-util": "^1.27.6",
28
+ "@arcblock/jwt": "^1.27.6",
29
+ "@arcblock/nft-display": "^3.2.5",
30
+ "@arcblock/validator": "^1.27.6",
31
+ "@arcblock/vc": "^1.27.6",
32
+ "@blocklet/constant": "1.17.2-beta-20251114-122922-4319f1ac",
33
33
  "@blocklet/error": "^0.3.2",
34
- "@blocklet/meta": "1.17.2-beta-20251113-233840-b720c2e6",
35
- "@blocklet/sdk": "1.17.2-beta-20251113-233840-b720c2e6",
36
- "@ocap/client": "^1.27.4",
37
- "@ocap/mcrypto": "^1.27.4",
38
- "@ocap/util": "^1.27.4",
39
- "@ocap/wallet": "^1.27.4",
34
+ "@blocklet/meta": "1.17.2-beta-20251114-122922-4319f1ac",
35
+ "@blocklet/sdk": "1.17.2-beta-20251114-122922-4319f1ac",
36
+ "@ocap/client": "^1.27.6",
37
+ "@ocap/mcrypto": "^1.27.6",
38
+ "@ocap/util": "^1.27.6",
39
+ "@ocap/wallet": "^1.27.6",
40
40
  "@simplewebauthn/server": "^13.1.1",
41
41
  "axios": "^1.7.9",
42
42
  "flat": "^5.0.2",
@@ -55,5 +55,5 @@
55
55
  "devDependencies": {
56
56
  "axios-mock-adapter": "^2.1.0"
57
57
  },
58
- "gitHead": "48e4475970ca42fc5da23d6d72ebfe892115077a"
58
+ "gitHead": "eb484ccabce50c438b8eec1be3738da18cd28f75"
59
59
  }