@abtnode/blocklet-services 1.16.14-beta-359fefce → 1.16.14-beta-811ed435

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.
@@ -332,7 +332,13 @@ module.exports = {
332
332
 
333
333
  const now = new Date().toISOString();
334
334
  const connectedNft = nftState
335
- ? { provider: 'nft', did: nftState.address, owner: nftState.owner, firstLoginAt: now, lastLoginAt: now }
335
+ ? {
336
+ provider: LOGIN_PROVIDER.NFT,
337
+ did: nftState.address,
338
+ owner: nftState.owner,
339
+ firstLoginAt: now,
340
+ lastLoginAt: now,
341
+ }
336
342
  : null;
337
343
 
338
344
  let fullName = user?.fullName;
@@ -340,13 +346,13 @@ module.exports = {
340
346
  const passportForLog = passport || { name: 'Guest', role: 'guest' };
341
347
 
342
348
  const masterSite = getFederatedMaster(blocklet);
343
- let connectAccount = { provider, did: realDid, pk: realPk };
349
+ let connectAccount = { provider, did: userDid, pk: userPk };
344
350
 
345
351
  let updatedUser;
346
352
  if (user) {
347
353
  // Update user
348
354
  if (masterSite && provider === LOGIN_PROVIDER.FEDERATED) {
349
- connectAccount = { provider, did: realDid, pk: realPk, id: masterSite.appPid };
355
+ connectAccount = { provider, did: userDid, pk: userPk, id: masterSite.appPid };
350
356
  }
351
357
  updatedUser = await node.loginUser({
352
358
  teamDid,
@@ -374,7 +380,7 @@ module.exports = {
374
380
  fullName = profile.fullName;
375
381
 
376
382
  if (masterSite && provider === LOGIN_PROVIDER.FEDERATED) {
377
- connectAccount = { provider, did: realDid, pk: realPk, id: masterSite.appPid };
383
+ connectAccount = { provider, did: userDid, pk: userPk, id: masterSite.appPid };
378
384
  }
379
385
 
380
386
  updatedUser = await node.loginUser({
@@ -447,6 +447,8 @@ module.exports = {
447
447
  passport: targetPassport,
448
448
  role: targetPassport?.role || 'guest',
449
449
  fullName: newUser.fullName,
450
+ // 这里是 member 登录了 master 的账号,对于 master 来说,其实还是使用 wallet 来登录的
451
+ provider: LOGIN_PROVIDER.WALLET,
450
452
  },
451
453
  {
452
454
  ...sessionConfig,
@@ -13,6 +13,7 @@ const sortBy = require('lodash/sortBy');
13
13
  const joinUrl = require('url-join');
14
14
  const { getWalletDid } = require('@blocklet/meta/lib/did-utils');
15
15
  const formatContext = require('@abtnode/util/lib/format-context');
16
+ const { LOGIN_PROVIDER } = require('@blocklet/constant');
16
17
  const logger = require('@abtnode/logger')('blocklet-services:oauth');
17
18
 
18
19
  const { AuthenticationClient } = require('../libs/auth/adapters/auth0');
@@ -162,6 +163,7 @@ async function login(req, node, options) {
162
163
  passport,
163
164
  role: passport.role,
164
165
  fullName,
166
+ provider,
165
167
  },
166
168
  { ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
167
169
  );
@@ -175,7 +177,7 @@ async function login(req, node, options) {
175
177
  }
176
178
 
177
179
  async function invite(req, node, options) {
178
- const { locale, inviteId, token, baseUrl, provider = 'auth0' } = req.body;
180
+ const { locale, inviteId, token, baseUrl, provider = LOGIN_PROVIDER.AUTH0 } = req.body;
179
181
  const blocklet = await req.getBlocklet();
180
182
  const authClient = getAuthClient(blocklet, provider);
181
183
 
@@ -279,7 +281,7 @@ async function invite(req, node, options) {
279
281
 
280
282
  const { sessionToken, refreshToken } = createToken(
281
283
  userDid,
282
- { secret, passport, role, fullName: profile.fullName },
284
+ { secret, passport, role, fullName: profile.fullName, provider },
283
285
  { ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
284
286
  );
285
287
 
@@ -314,7 +316,7 @@ async function bind(req, node, options) {
314
316
 
315
317
  // NOTICE: 这里获得的 did 是当前登录用户的永久 did,无需再去查询 connectedAccount
316
318
  const bindUser = await node.getUser({ teamDid, user: { did: userDid } });
317
- if (bindUser.sourceProvider !== 'wallet') {
319
+ if (bindUser.sourceProvider !== LOGIN_PROVIDER.WALLET) {
318
320
  throw new ApiError(400, t('oauthCantBindOauth', locale));
319
321
  }
320
322
 
@@ -446,7 +448,7 @@ module.exports = {
446
448
  });
447
449
 
448
450
  server.post(`${prefix}/switch`, async (req, res) => {
449
- const userDid = req.user.did;
451
+ const { did: userDid, provider } = req.user;
450
452
  const { passportId } = req.body;
451
453
  const blocklet = await req.getBlocklet();
452
454
  const { did: teamDid, secret } = await req.getBlockletInfo();
@@ -468,7 +470,7 @@ module.exports = {
468
470
  const sessionConfig = blocklet.settings?.session || {};
469
471
  const { sessionToken, refreshToken } = createToken(
470
472
  userDid,
471
- { secret, passport, role: passport.role, fullName: user?.fullName },
473
+ { secret, passport, role: passport.role, fullName: user?.fullName, provider },
472
474
  { ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
473
475
  );
474
476
 
@@ -5,6 +5,7 @@ const { extractUserAvatar } = require('@abtnode/util/lib/user');
5
5
  const formatContext = require('@abtnode/util/lib/format-context');
6
6
  const logger = require('@abtnode/logger')('blocklet-services:user');
7
7
  const { isFromPublicKey } = require('@arcblock/did');
8
+ const { LOGIN_PROVIDER } = require('@blocklet/constant');
8
9
 
9
10
  const { generateTranslate } = require('../libs/translate');
10
11
  const { isInvitedUserOnly, createTokenFn, getDidConnectVersion } = require('../util');
@@ -89,7 +90,7 @@ async function composeProfileData({ avatar, fullName, email }, { node, req, team
89
90
  }
90
91
 
91
92
  async function loginWallet({ did, pk, avatar, email, fullName }, { node, req, locale, componentId, teamDid }) {
92
- const provider = 'wallet';
93
+ const provider = LOGIN_PROVIDER.WALLET;
93
94
  const { error } = loginWalletSchema.validate({
94
95
  provider,
95
96
  did,
@@ -200,7 +201,7 @@ async function loginOAuth(
200
201
  }
201
202
 
202
203
  async function login(req, node, options) {
203
- const { provider = 'wallet', did, pk, avatar, email, fullName, id, locale = 'en' } = req.body;
204
+ const { provider = LOGIN_PROVIDER.WALLET, did, pk, avatar, email, fullName, id, locale = 'en' } = req.body;
204
205
 
205
206
  const componentId = req.get('x-blocklet-component-id');
206
207
  if (!componentId) {
@@ -210,7 +211,7 @@ async function login(req, node, options) {
210
211
  const blocklet = await req.getBlocklet();
211
212
 
212
213
  let doc;
213
- if (provider === 'wallet') {
214
+ if (provider === LOGIN_PROVIDER.WALLET) {
214
215
  doc = await loginWallet({ did, pk, avatar, email, fullName }, { node, req, locale, componentId, teamDid });
215
216
  } else {
216
217
  doc = await loginOAuth(
@@ -243,6 +244,7 @@ async function login(req, node, options) {
243
244
  passport,
244
245
  role: passport.role,
245
246
  fullName: doc.fullName,
247
+ provider,
246
248
  },
247
249
  { ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
248
250
  );
@@ -8,6 +8,7 @@ const {
8
8
  beforeInvitationRequest,
9
9
  } = require('@abtnode/auth/lib/auth');
10
10
  const { NODE_SERVICES, WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
11
+ const { LOGIN_PROVIDER } = require('@blocklet/constant');
11
12
  const logger = require('@abtnode/logger')(require('../../../../package.json').name);
12
13
 
13
14
  const { createTokenFn, getDidConnectVersion } = require('../../../util');
@@ -81,7 +82,7 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
81
82
  const sessionConfig = blocklet.settings?.session || {};
82
83
  const { sessionToken, refreshToken } = createToken(
83
84
  userDid,
84
- { secret, passport, role, fullName: profile.fullName },
85
+ { secret, passport, role, fullName: profile.fullName, provider: LOGIN_PROVIDER.WALLET },
85
86
  { ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
86
87
  );
87
88
  await updateSession({ sessionToken, refreshToken }, true);
@@ -17,6 +17,7 @@ const {
17
17
  const getBlockletWallet = require('@blocklet/meta/lib/wallet');
18
18
  const { getBlockletChainInfo, isInProgress } = require('@blocklet/meta/lib/util');
19
19
  const { ROLES } = require('@abtnode/constant');
20
+ const { LOGIN_PROVIDER } = require('@blocklet/constant');
20
21
  const logger = require('@abtnode/logger')('blocklet-service:transfer-blocklet-owner');
21
22
 
22
23
  const { createTokenFn, getDidConnectVersion } = require('../../../util');
@@ -251,7 +252,7 @@ module.exports = function createRoutes(node, _, createSessionToken) {
251
252
  locale,
252
253
  lastLoginIp: get(req, 'headers[x-real-ip]') || '',
253
254
  passports: [passport],
254
- connectedAccounts: [{ provider: 'wallet', did: userDid, pk: userPk }],
255
+ connectedAccounts: [{ provider: LOGIN_PROVIDER.WALLET, did: userDid, pk: userPk }],
255
256
  ...profile,
256
257
  avatar,
257
258
  },
@@ -277,7 +278,7 @@ module.exports = function createRoutes(node, _, createSessionToken) {
277
278
  passport,
278
279
  lastLoginIp: get(req, 'headers[x-real-ip]') || '',
279
280
  connectedAccount: {
280
- provider: 'wallet',
281
+ provider: LOGIN_PROVIDER.WALLET,
281
282
  did: userDid,
282
283
  pk: userPk,
283
284
  },
@@ -368,7 +369,7 @@ module.exports = function createRoutes(node, _, createSessionToken) {
368
369
  const sessionConfig = blocklet.settings?.session || {};
369
370
  const { sessionToken, refreshToken } = createToken(
370
371
  userDid,
371
- { secret, passport: vc, role, fullName: profile.fullName },
372
+ { secret, passport: vc, role, fullName: profile.fullName, provider: LOGIN_PROVIDER.WALLET },
372
373
  { ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
373
374
  );
374
375
  await updateSession({ sessionToken, refreshToken }, true);
@@ -4,6 +4,7 @@ const { messages } = require('@abtnode/auth/lib/auth');
4
4
  const { extractUserAvatar } = require('@abtnode/util/lib/user');
5
5
  const formatContext = require('@abtnode/util/lib/format-context');
6
6
  const verifySignature = require('@abtnode/auth/lib/util/verify-signature');
7
+ const { LOGIN_PROVIDER } = require('@blocklet/constant');
7
8
 
8
9
  const logger = require('@abtnode/logger')(require('../../../../package.json').name);
9
10
 
@@ -92,7 +93,7 @@ module.exports = function createRoutes(node, _authenticator, createSessionToken)
92
93
  baseUrl,
93
94
  },
94
95
  connectedAccount: {
95
- provider: 'wallet',
96
+ provider: LOGIN_PROVIDER.WALLET,
96
97
  did: userDid,
97
98
  pk: userPk,
98
99
  },
@@ -1,5 +1,6 @@
1
1
  const joinUrl = require('url-join');
2
2
  const { USER_AVATAR_URL_PREFIX, WELLKNOWN_SERVICE_PATH_PREFIX, USER_AVATAR_PATH_PREFIX } = require('@abtnode/constant');
3
+ const { LOGIN_PROVIDER } = require('@blocklet/constant');
3
4
 
4
5
  function getFederatedMaster(blocklet) {
5
6
  const { sites } = blocklet?.settings?.federated || {};
@@ -23,7 +24,7 @@ function getUserAvatarUrl(avatar, blocklet) {
23
24
  }
24
25
 
25
26
  function getProvider(request, extraParams = {}) {
26
- let provider = 'wallet';
27
+ let provider = LOGIN_PROVIDER.WALLET;
27
28
  // 1. 优先读取当前登录用户的 provider
28
29
  ({ provider } = request.user || {});
29
30
  if (!provider) {
@@ -1,7 +1,8 @@
1
1
  const { Joi } = require('@arcblock/validator');
2
+ const { LOGIN_PROVIDER } = require('@blocklet/constant');
2
3
 
3
4
  const loginWalletSchema = Joi.object({
4
- provider: 'wallet',
5
+ provider: LOGIN_PROVIDER.WALLET,
5
6
  did: Joi.DID().trim().required(),
6
7
  pk: Joi.string().required(),
7
8
  email: Joi.string().optional(),
@@ -10,7 +11,7 @@ const loginWalletSchema = Joi.object({
10
11
  }).empty(null);
11
12
 
12
13
  const loginOAuthSchema = Joi.object({
13
- provider: Joi.string().allow('auth0'),
14
+ provider: Joi.string().allow(LOGIN_PROVIDER.AUTH0),
14
15
  id: Joi.string().required(),
15
16
  email: Joi.string().required(),
16
17
  avatar: Joi.string().optional(),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "files": {
3
3
  "main.css": "/.well-known/service/static/static/css/main.7ea79dc8.css",
4
- "main.js": "/.well-known/service/static/static/js/main.a71506d8.js",
4
+ "main.js": "/.well-known/service/static/static/js/main.4cd8cbc4.js",
5
5
  "static/js/4716.a1240199.chunk.js": "/.well-known/service/static/static/js/4716.a1240199.chunk.js",
6
6
  "static/js/4359.5ed52fe3.chunk.js": "/.well-known/service/static/static/js/4359.5ed52fe3.chunk.js",
7
7
  "static/js/1255.0e8a8a45.chunk.js": "/.well-known/service/static/static/js/1255.0e8a8a45.chunk.js",
@@ -22,7 +22,7 @@
22
22
  "static/js/5176.68fd3fde.chunk.js": "/.well-known/service/static/static/js/5176.68fd3fde.chunk.js",
23
23
  "static/js/2139.341406d2.chunk.js": "/.well-known/service/static/static/js/2139.341406d2.chunk.js",
24
24
  "static/js/5052.91c69c75.chunk.js": "/.well-known/service/static/static/js/5052.91c69c75.chunk.js",
25
- "static/js/8395.5bd41151.chunk.js": "/.well-known/service/static/static/js/8395.5bd41151.chunk.js",
25
+ "static/js/8395.b1ffb35e.chunk.js": "/.well-known/service/static/static/js/8395.b1ffb35e.chunk.js",
26
26
  "static/js/5233.faabaae9.chunk.js": "/.well-known/service/static/static/js/5233.faabaae9.chunk.js",
27
27
  "static/css/4603.dce369d5.chunk.css": "/.well-known/service/static/static/css/4603.dce369d5.chunk.css",
28
28
  "static/js/4603.7a55b2c4.chunk.js": "/.well-known/service/static/static/js/4603.7a55b2c4.chunk.js",
@@ -84,7 +84,7 @@
84
84
  "router-template-styles/styles.css": "/.well-known/service/static/router-template-styles/styles.css",
85
85
  "index.html": "/.well-known/service/static/index.html",
86
86
  "main.7ea79dc8.css.map": "/.well-known/service/static/static/css/main.7ea79dc8.css.map",
87
- "main.a71506d8.js.map": "/.well-known/service/static/static/js/main.a71506d8.js.map",
87
+ "main.4cd8cbc4.js.map": "/.well-known/service/static/static/js/main.4cd8cbc4.js.map",
88
88
  "4716.a1240199.chunk.js.map": "/.well-known/service/static/static/js/4716.a1240199.chunk.js.map",
89
89
  "4359.5ed52fe3.chunk.js.map": "/.well-known/service/static/static/js/4359.5ed52fe3.chunk.js.map",
90
90
  "1255.0e8a8a45.chunk.js.map": "/.well-known/service/static/static/js/1255.0e8a8a45.chunk.js.map",
@@ -105,7 +105,7 @@
105
105
  "5176.68fd3fde.chunk.js.map": "/.well-known/service/static/static/js/5176.68fd3fde.chunk.js.map",
106
106
  "2139.341406d2.chunk.js.map": "/.well-known/service/static/static/js/2139.341406d2.chunk.js.map",
107
107
  "5052.91c69c75.chunk.js.map": "/.well-known/service/static/static/js/5052.91c69c75.chunk.js.map",
108
- "8395.5bd41151.chunk.js.map": "/.well-known/service/static/static/js/8395.5bd41151.chunk.js.map",
108
+ "8395.b1ffb35e.chunk.js.map": "/.well-known/service/static/static/js/8395.b1ffb35e.chunk.js.map",
109
109
  "5233.faabaae9.chunk.js.map": "/.well-known/service/static/static/js/5233.faabaae9.chunk.js.map",
110
110
  "4603.dce369d5.chunk.css.map": "/.well-known/service/static/static/css/4603.dce369d5.chunk.css.map",
111
111
  "4603.7a55b2c4.chunk.js.map": "/.well-known/service/static/static/js/4603.7a55b2c4.chunk.js.map",
@@ -147,6 +147,6 @@
147
147
  },
148
148
  "entrypoints": [
149
149
  "static/css/main.7ea79dc8.css",
150
- "static/js/main.a71506d8.js"
150
+ "static/js/main.4cd8cbc4.js"
151
151
  ]
152
152
  }
package/build/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/><meta name="theme-color" content="#000000"/><title>Blocklet Service</title><link rel="manifest" href="/.well-known/service/manifest.json"/><script src="/.well-known/service/api/env"></script><script src="/__blocklet__.js"></script><script defer="defer" src="/.well-known/service/static/static/js/main.a71506d8.js"></script><link href="/.well-known/service/static/static/css/main.7ea79dc8.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/><meta name="theme-color" content="#000000"/><title>Blocklet Service</title><link rel="manifest" href="/.well-known/service/manifest.json"/><script src="/.well-known/service/api/env"></script><script src="/__blocklet__.js"></script><script defer="defer" src="/.well-known/service/static/static/js/main.4cd8cbc4.js"></script><link href="/.well-known/service/static/static/css/main.7ea79dc8.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>