@abtnode/blocklet-services 1.16.8-beta-ca58a421 → 1.16.8-beta-0c0c5eb2

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.
@@ -12,6 +12,7 @@ const { getAvatarByUrl } = require('../libs/auth/utils');
12
12
  const { ApiError } = require('../util/error');
13
13
  const { loginWalletSchema, loginOAuthSchema } = require('../validators/login');
14
14
  const verifySig = require('../middlewares/verify-sig');
15
+ const { getAvatarByEmail } = require('../libs/auth/utils');
15
16
 
16
17
  const PREFIX = WELLKNOWN_SERVICE_PATH_PREFIX;
17
18
 
@@ -45,18 +46,31 @@ async function checkUserEnable(user, { locale }) {
45
46
  }
46
47
  }
47
48
 
48
- async function composeProfileData({ avatar, fullName, email }, { node, req, teamDid }) {
49
+ async function composeProfileData({ avatar, fullName, email }, { node, req, teamDid, isCreate = false }) {
49
50
  const profile = {};
51
+ let avatarLocal;
52
+ if (email) {
53
+ profile.email = email;
54
+ // 创建模式下,需要对 avatar 和 fullname 做一个 fallback,同时对 wallet 和 oauth 用户生效
55
+ if (isCreate) {
56
+ if (!avatar) {
57
+ avatarLocal = await getAvatarByEmail(email);
58
+ }
59
+ if (!fullName) {
60
+ profile.fullName = email;
61
+ }
62
+ }
63
+ }
50
64
  if (avatar) {
51
- let avatarLocal = await getAvatarByUrl(avatar);
65
+ avatarLocal = await getAvatarByUrl(avatar);
66
+ }
67
+ if (avatarLocal) {
52
68
  const nodeInfo = await req.getNodeInfo();
53
69
  const { dataDir } = await getApplicationInfo({ node, nodeInfo, teamDid });
54
- avatarLocal = await extractUserAvatar(avatar, { dataDir });
70
+ avatarLocal = await extractUserAvatar(avatarLocal, { dataDir });
55
71
  profile.avatar = avatarLocal;
56
72
  }
57
- if (email) {
58
- profile.email = email;
59
- }
73
+
60
74
  if (fullName) {
61
75
  profile.fullName = fullName;
62
76
  }
@@ -92,20 +106,21 @@ async function loginWallet(
92
106
  },
93
107
  });
94
108
 
109
+ let profile;
95
110
  if (currentUser) {
96
111
  await checkUserEnable(currentUser, { locale });
112
+ profile = await composeProfileData({ avatar, email, fullName }, { node, req, teamDid });
97
113
  } else {
98
- await checkNeedInvite(req, node, teamDid, componentId, locale);
114
+ await checkNeedInvite({ req, node, teamDid, componentId, locale });
115
+ profile = await composeProfileData({ avatar, email, fullName }, { node, req, teamDid, isCreate: true });
99
116
  }
100
117
 
101
- const profile = await composeProfileData({ avatar, email, fullName }, { node, req, teamDid });
102
-
103
118
  const lastLoginIp = req.get('x-real-ip');
104
119
  const doc = await node.loginUser({
105
120
  teamDid,
106
121
  user: {
107
- did: currentUser.did,
108
- pk: currentUser.pk,
122
+ did: currentUser?.did || pk,
123
+ pk: currentUser?.pk || did,
109
124
  locale,
110
125
  lastLoginIp,
111
126
  connectedAccount: { provider, did, pk },
@@ -114,7 +129,6 @@ async function loginWallet(
114
129
  });
115
130
 
116
131
  // NOTICE: 使用 provider: wallet 登录的账号,其账号是由 wallet 产生的,所以不需要到链上 declare 了
117
-
118
132
  return doc;
119
133
  }
120
134
 
@@ -148,20 +162,22 @@ async function loginOAuth(
148
162
  },
149
163
  });
150
164
 
165
+ let profile;
151
166
  if (currentUser) {
152
167
  await checkUserEnable(currentUser, { locale });
168
+ profile = await composeProfileData({ avatar, email, fullName }, { node, req, teamDid });
153
169
  } else {
154
- await checkNeedInvite(req, node, teamDid, componentId, locale);
170
+ await checkNeedInvite({ req, node, teamDid, componentId, locale });
171
+ profile = await composeProfileData({ avatar, email, fullName }, { node, req, teamDid, isCreate: true });
155
172
  }
156
- const profile = await composeProfileData({ avatar, email, fullName }, { node, req, teamDid });
157
173
 
158
174
  const lastLoginIp = req.get('x-real-ip');
159
175
 
160
176
  const doc = await node.loginUser({
161
177
  teamDid,
162
178
  user: {
163
- did: currentUser.did,
164
- pk: currentUser.pk,
179
+ did: currentUser?.did || userDid,
180
+ pk: currentUser?.pk || userPk,
165
181
  locale,
166
182
  lastLoginIp,
167
183
  connectedAccount: { provider, id, did: userDid, pk: userPk },
@@ -4,17 +4,17 @@ const loginWalletSchema = Joi.object({
4
4
  provider: 'wallet',
5
5
  did: Joi.DID().trim().required(),
6
6
  pk: Joi.string().required(),
7
- avatar: Joi.string().optional(),
8
7
  email: Joi.string().optional(),
8
+ avatar: Joi.string().optional(),
9
9
  fullName: Joi.string().optional(),
10
10
  }).empty(null);
11
11
 
12
12
  const loginOAuthSchema = Joi.object({
13
13
  provider: Joi.string().allow('auth0'),
14
14
  id: Joi.string().required(),
15
- avatar: Joi.string().required(),
16
15
  email: Joi.string().required(),
17
- fullName: Joi.string().required(),
16
+ avatar: Joi.string().optional(),
17
+ fullName: Joi.string().optional(),
18
18
  }).empty(null);
19
19
 
20
20
  exports.loginWalletSchema = loginWalletSchema;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "files": {
3
3
  "main.css": "/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css",
4
- "main.js": "/.blocklet/proxy/blocklet-service/static/js/main.255c0179.js",
4
+ "main.js": "/.blocklet/proxy/blocklet-service/static/js/main.0006cb61.js",
5
5
  "static/js/716.0d2a2d32.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/716.0d2a2d32.chunk.js",
6
6
  "static/js/359.c47779c2.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/359.c47779c2.chunk.js",
7
7
  "static/js/255.279b1bca.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/255.279b1bca.chunk.js",
@@ -10,7 +10,7 @@
10
10
  "static/js/460.4763afe0.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/460.4763afe0.chunk.js",
11
11
  "static/js/868.ac8df3a0.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/868.ac8df3a0.chunk.js",
12
12
  "static/js/547.03d5d719.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/547.03d5d719.chunk.js",
13
- "static/js/343.9ca4b069.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/343.9ca4b069.chunk.js",
13
+ "static/js/343.0b145b64.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/343.0b145b64.chunk.js",
14
14
  "static/js/682.a8bf723a.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/682.a8bf723a.chunk.js",
15
15
  "static/js/711.56427a24.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/711.56427a24.chunk.js",
16
16
  "static/js/437.075e8453.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/437.075e8453.chunk.js",
@@ -45,7 +45,7 @@
45
45
  "router-template-styles/styles.css": "/.blocklet/proxy/blocklet-service/router-template-styles/styles.css",
46
46
  "index.html": "/.blocklet/proxy/blocklet-service/index.html",
47
47
  "main.632501d5.css.map": "/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css.map",
48
- "main.255c0179.js.map": "/.blocklet/proxy/blocklet-service/static/js/main.255c0179.js.map",
48
+ "main.0006cb61.js.map": "/.blocklet/proxy/blocklet-service/static/js/main.0006cb61.js.map",
49
49
  "716.0d2a2d32.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/716.0d2a2d32.chunk.js.map",
50
50
  "359.c47779c2.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/359.c47779c2.chunk.js.map",
51
51
  "255.279b1bca.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/255.279b1bca.chunk.js.map",
@@ -54,7 +54,7 @@
54
54
  "460.4763afe0.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/460.4763afe0.chunk.js.map",
55
55
  "868.ac8df3a0.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/868.ac8df3a0.chunk.js.map",
56
56
  "547.03d5d719.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/547.03d5d719.chunk.js.map",
57
- "343.9ca4b069.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/343.9ca4b069.chunk.js.map",
57
+ "343.0b145b64.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/343.0b145b64.chunk.js.map",
58
58
  "682.a8bf723a.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/682.a8bf723a.chunk.js.map",
59
59
  "711.56427a24.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/711.56427a24.chunk.js.map",
60
60
  "437.075e8453.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/437.075e8453.chunk.js.map",
@@ -70,6 +70,6 @@
70
70
  },
71
71
  "entrypoints": [
72
72
  "static/css/main.632501d5.css",
73
- "static/js/main.255c0179.js"
73
+ "static/js/main.0006cb61.js"
74
74
  ]
75
75
  }
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><script src=".well-known/service/api/env"></script><script src="/__blocklet__.js"></script><script defer="defer" src="/.blocklet/proxy/blocklet-service/static/js/main.255c0179.js"></script><link href="/.blocklet/proxy/blocklet-service/static/css/main.632501d5.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><script src=".well-known/service/api/env"></script><script src="/__blocklet__.js"></script><script defer="defer" src="/.blocklet/proxy/blocklet-service/static/js/main.0006cb61.js"></script><link href="/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>