@norcy/react-native-toolkit 0.3.39 → 0.3.41

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.
@@ -20,10 +20,21 @@ const LOGIN_TYPE_MAP = {
20
20
  huawei: _constant.LoginType.LoginTypeHuawei,
21
21
  apple: _constant.LoginType.LoginTypeApple
22
22
  };
23
+ // 使用自定义登录创建用户后,Name 是必填,nickname 不填
24
+ // - 没设置昵称时:name === username === 实际的用户名
25
+ // - 设置昵称后:name === 昵称,username === 实际的用户名
26
+ // - 无论什么情况,nickName 一直是 undefined
27
+ const getCloudBaseNickname = cloudUser => {
28
+ if (cloudUser?.nickName) return cloudUser.nickName;
29
+ if (cloudUser?.name && cloudUser.name !== cloudUser.username) {
30
+ return cloudUser.name;
31
+ }
32
+ return '';
33
+ };
23
34
  const toLocalUser = (profile, cloudUser) => {
24
35
  return {
25
36
  id: profile._id,
26
- nickname: cloudUser?.name || '',
37
+ nickname: getCloudBaseNickname(cloudUser),
27
38
  email: cloudUser?.email || '',
28
39
  headimgurl: cloudUser?.picture || '',
29
40
  type: LOGIN_TYPE_MAP[profile.loginType],
@@ -61,6 +72,10 @@ const setCachedProfile = profile => {
61
72
  _SyncPrefData.SyncPrefData.set(CACHED_PROFILE_KEY, JSON.stringify(profile));
62
73
  }
63
74
  };
75
+ const getCachedProfile = () => {
76
+ const raw = _SyncPrefData.SyncPrefData.getString(CACHED_PROFILE_KEY);
77
+ return raw ? JSON.parse(raw) : null;
78
+ };
64
79
  const getUid = () => {
65
80
  return getApp().auth.hasLoginState()?.user.uid;
66
81
  };
@@ -85,8 +100,7 @@ const CloudBaseAuth = exports.CloudBaseAuth = {
85
100
  setCachedProfile();
86
101
  return null;
87
102
  }
88
- const raw = _SyncPrefData.SyncPrefData.getString(CACHED_PROFILE_KEY);
89
- const profile = raw ? JSON.parse(raw) : null;
103
+ const profile = getCachedProfile();
90
104
  if (profile?._id === uid) {
91
105
  return toLocalUser(profile, await getApp().auth.getCurrentUser());
92
106
  }
@@ -113,7 +127,8 @@ const CloudBaseAuth = exports.CloudBaseAuth = {
113
127
  });
114
128
  await getApp().auth.signInWithCustomTicket(() => Promise.resolve(ticket));
115
129
  setCachedProfile(profile);
116
- const localUser = toLocalUser(profile, await getApp().auth.getCurrentUser());
130
+ const cloudUser = await getApp().auth.getCurrentUser();
131
+ const localUser = toLocalUser(profile, cloudUser);
117
132
  localUser.isNew = isNew;
118
133
  return localUser;
119
134
  },
@@ -124,15 +139,32 @@ const CloudBaseAuth = exports.CloudBaseAuth = {
124
139
  updateUser: async (keys, values) => {
125
140
  const uid = getUid();
126
141
  if (!uid) throw new Error('User Not Login Yet');
127
- const {
128
- profile
129
- } = await requestAuth({
130
- action: 'updateUser',
131
- uid,
132
- keys,
133
- values
134
- });
135
- setCachedProfile(profile);
142
+ const userInfo = {};
143
+ const profileKeys = [];
144
+ const profileValues = [];
145
+ for (let i = 0; i < keys.length; i += 1) {
146
+ if (keys[i] === 'nickname') userInfo.nickname = values[i];else if (keys[i] === 'email') userInfo.email = values[i];else if (keys[i] === 'headimgurl') userInfo.avatar_url = values[i];else {
147
+ profileKeys.push(keys[i]);
148
+ profileValues.push(values[i]);
149
+ }
150
+ }
151
+ if (Object.keys(userInfo).length > 0) {
152
+ await getApp().auth.updateUserBasicInfo(userInfo);
153
+ }
154
+ let profile;
155
+ if (profileKeys.length > 0) {
156
+ const response = await requestAuth({
157
+ action: 'updateUser',
158
+ uid,
159
+ keys: profileKeys,
160
+ values: profileValues
161
+ });
162
+ profile = response.profile;
163
+ setCachedProfile(profile);
164
+ } else {
165
+ profile = getCachedProfile();
166
+ }
167
+ if (!profile) throw new Error('CloudBase profile missing');
136
168
  return toLocalUser(profile, await getApp().auth.getCurrentUser());
137
169
  },
138
170
  destroyUser: async () => {
@@ -1 +1 @@
1
- {"version":3,"names":["_adapterRn","_interopRequireDefault","require","_jsSdk","_constant","_SyncPrefData","_Tool","e","__esModule","default","cloudbase","useAdapters","adapter","app","authUrl","CACHED_PROFILE_KEY","LOGIN_TYPE_MAP","wechat","LoginType","LoginTypeWeChat","visitor","LoginTypeVisitor","huawei","LoginTypeHuawei","apple","LoginTypeApple","toLocalUser","profile","cloudUser","id","_id","nickname","name","email","headimgurl","picture","type","loginType","vipType","vipEndTime","Date","undefined","createdAt","attr","webdav","getApp","CloudBaseEnv","CloudBaseAccessKey","CloudBaseRegion","CloudBaseAuthUrl","ToolkitConfig","Error","init","env","region","accessKey","endPointMode","setCachedProfile","SyncPrefData","delete","set","JSON","stringify","getUid","auth","hasLoginState","user","uid","requestAuth","body","response","fetch","method","headers","ok","status","json","CloudBaseAuth","exports","getLocalUser","raw","getString","parse","getCurrentUser","logout","login","authData","userData","ticket","isNew","action","openid","unionid","signInWithCustomTicket","Promise","resolve","localUser","signOut","updateUser","keys","values","destroyUser","callFunction","data"],"sourceRoot":"../../src","sources":["CloudBaseAuth.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_adapterRn","_interopRequireDefault","require","_jsSdk","_constant","_SyncPrefData","_Tool","e","__esModule","default","cloudbase","useAdapters","adapter","app","authUrl","CACHED_PROFILE_KEY","LOGIN_TYPE_MAP","wechat","LoginType","LoginTypeWeChat","visitor","LoginTypeVisitor","huawei","LoginTypeHuawei","apple","LoginTypeApple","getCloudBaseNickname","cloudUser","nickName","name","username","toLocalUser","profile","id","_id","nickname","email","headimgurl","picture","type","loginType","vipType","vipEndTime","Date","undefined","createdAt","attr","webdav","getApp","CloudBaseEnv","CloudBaseAccessKey","CloudBaseRegion","CloudBaseAuthUrl","ToolkitConfig","Error","init","env","region","accessKey","endPointMode","setCachedProfile","SyncPrefData","delete","set","JSON","stringify","getCachedProfile","raw","getString","parse","getUid","auth","hasLoginState","user","uid","requestAuth","body","response","fetch","method","headers","ok","status","json","CloudBaseAuth","exports","getLocalUser","getCurrentUser","logout","login","authData","userData","ticket","isNew","action","openid","unionid","signInWithCustomTicket","Promise","resolve","localUser","signOut","updateUser","keys","values","userInfo","profileKeys","profileValues","i","length","avatar_url","push","Object","updateUserBasicInfo","destroyUser","callFunction","data"],"sourceRoot":"../../src","sources":["CloudBaseAuth.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAMA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAAuC,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEvCG,cAAS,CAACC,WAAW,CAACC,kBAAO,CAAC;AAE9B,IAAIC,GAA6B,GAAG,IAAI;AACxC,IAAIC,OAAO,GAAG,EAAE;AAChB,MAAMC,kBAAkB,GAAG,gCAAgC;AAC3D,MAAMC,cAAsC,GAAG;EAC7CC,MAAM,EAAEC,mBAAS,CAACC,eAAe;EACjCC,OAAO,EAAEF,mBAAS,CAACG,gBAAgB;EACnCC,MAAM,EAAEJ,mBAAS,CAACK,eAAe;EACjCC,KAAK,EAAEN,mBAAS,CAACO;AACnB,CAAC;AA0BD;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,GAAIC,SAAoC,IAAK;EACrE,IAAIA,SAAS,EAAEC,QAAQ,EAAE,OAAOD,SAAS,CAACC,QAAQ;EAClD,IAAID,SAAS,EAAEE,IAAI,IAAIF,SAAS,CAACE,IAAI,KAAKF,SAAS,CAACG,QAAQ,EAAE;IAC5D,OAAOH,SAAS,CAACE,IAAI;EACvB;EACA,OAAO,EAAE;AACX,CAAC;AAED,MAAME,WAAW,GAAGA,CAClBC,OAAyB,EACzBL,SAAoC,KACvB;EACb,OAAO;IACLM,EAAE,EAAED,OAAO,CAACE,GAAG;IACfC,QAAQ,EAAET,oBAAoB,CAACC,SAAS,CAAC;IACzCS,KAAK,EAAET,SAAS,EAAES,KAAK,IAAI,EAAE;IAC7BC,UAAU,EAAEV,SAAS,EAAEW,OAAO,IAAI,EAAE;IACpCC,IAAI,EAAEvB,cAAc,CAACgB,OAAO,CAACQ,SAAS,CAAC;IACvCC,OAAO,EAAET,OAAO,CAACS,OAAO;IACxBC,UAAU,EAAEV,OAAO,CAACU,UAAU,GAAG,IAAIC,IAAI,CAACX,OAAO,CAACU,UAAU,CAAC,GAAGE,SAAS;IACzEC,SAAS,EAAEb,OAAO,CAACa,SAAS,GAAG,IAAIF,IAAI,CAACX,OAAO,CAACa,SAAS,CAAC,GAAGD,SAAS;IACtEE,IAAI,EAAEd,OAAO,CAACc,IAAI;IAClBC,MAAM,EAAEf,OAAO,CAACe;EAClB,CAAC;AACH,CAAC;AAED,MAAMC,MAAM,GAAGA,CAAA,KAAM;EACnB,IAAInC,GAAG,EAAE,OAAOA,GAAG;EAEnB,MAAM;IACJoC,YAAY;IACZC,kBAAkB;IAClBC,eAAe;IACfC;EACF,CAAC,GAAGC,mBAAa;EACjB,IAAI,CAACJ,YAAY,IAAI,CAACC,kBAAkB,IAAI,CAACE,gBAAgB,EAAE;IAC7D,MAAM,IAAIE,KAAK,CACb,sGACF,CAAC;EACH;EAEAzC,GAAG,GAAGH,cAAS,CAAC6C,IAAI,CAAC;IACnBC,GAAG,EAAEP,YAAY;IACjBQ,MAAM,EAAEN,eAAe,IAAI,aAAa;IACxCO,SAAS,EAAER,kBAAkB;IAC7BS,YAAY,EAAE;EAChB,CAAC,CAAC;EACF7C,OAAO,GAAGsC,gBAAgB;EAC1B,OAAOvC,GAAG;AACZ,CAAC;AAED,MAAM+C,gBAAgB,GAAI5B,OAA0B,IAAK;EACvD,IAAI,CAACA,OAAO,EAAE;IACZ6B,0BAAY,CAACC,MAAM,CAAC/C,kBAAkB,CAAC;EACzC,CAAC,MAAM;IACL8C,0BAAY,CAACE,GAAG,CAAChD,kBAAkB,EAAEiD,IAAI,CAACC,SAAS,CAACjC,OAAO,CAAC,CAAC;EAC/D;AACF,CAAC;AAED,MAAMkC,gBAAgB,GAAGA,CAAA,KAAM;EAC7B,MAAMC,GAAG,GAAGN,0BAAY,CAACO,SAAS,CAACrD,kBAAkB,CAAC;EACtD,OAAOoD,GAAG,GAAIH,IAAI,CAACK,KAAK,CAACF,GAAG,CAAC,GAAwB,IAAI;AAC3D,CAAC;AAED,MAAMG,MAAM,GAAGA,CAAA,KAAM;EACnB,OAAOtB,MAAM,CAAC,CAAC,CAACuB,IAAI,CAACC,aAAa,CAAC,CAAC,EAAEC,IAAI,CAACC,GAAG;AAChD,CAAC;AAED,MAAMC,WAAW,GAAG,MAAOC,IAA6B,IAAK;EAC3D5B,MAAM,CAAC,CAAC;EACR,MAAM6B,QAAQ,GAAG,MAAMC,KAAK,CAAChE,OAAO,EAAE;IACpCiE,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MAAE,cAAc,EAAE;IAAmB,CAAC;IAC/CJ,IAAI,EAAEZ,IAAI,CAACC,SAAS,CAACW,IAAI;EAC3B,CAAC,CAAC;EAEF,IAAI,CAACC,QAAQ,CAACI,EAAE,EAAE;IAChB,MAAM,IAAI3B,KAAK,CAAC,0BAA0BuB,QAAQ,CAACK,MAAM,EAAE,CAAC;EAC9D;EAEA,OAAOL,QAAQ,CAACM,IAAI,CAAC,CAAC;AACxB,CAAC;AAEM,MAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC3BE,YAAY,EAAE,MAAAA,CAAA,KAAsC;IAClD,MAAMZ,GAAG,GAAGJ,MAAM,CAAC,CAAC;IACpB,IAAI,CAACI,GAAG,EAAE;MACRd,gBAAgB,CAAC,CAAC;MAClB,OAAO,IAAI;IACb;IAEA,MAAM5B,OAAO,GAAGkC,gBAAgB,CAAC,CAAC;IAClC,IAAIlC,OAAO,EAAEE,GAAG,KAAKwC,GAAG,EAAE;MACxB,OAAO3C,WAAW,CAACC,OAAO,EAAE,MAAMgB,MAAM,CAAC,CAAC,CAACuB,IAAI,CAACgB,cAAc,CAAC,CAAC,CAAC;IACnE;IAEA,MAAMH,aAAa,CAACI,MAAM,CAAC,CAAC;IAC5B,OAAO,IAAI;EACb,CAAC;EAEDC,KAAK,EAAE,MAAAA,CACLC,QAA2B,EAC3BC,QAA4B,KACN;IACtB,MAAM;MAAEC,MAAM;MAAE5D,OAAO;MAAE6D;IAAM,CAAC,GAAG,MAAMlB,WAAW,CAAC;MACnDmB,MAAM,EAAE,OAAO;MACfJ,QAAQ,EAAE;QACRK,MAAM,EAAEL,QAAQ,CAACK,MAAM;QACvBC,OAAO,EAAEN,QAAQ,CAACM,OAAO;QACzBxD,SAAS,EAAEkD,QAAQ,CAAClD;MACtB,CAAC;MACDmD,QAAQ,EAAEA,QAAQ,GACd;QACExD,QAAQ,EAAEwD,QAAQ,CAACxD,QAAQ;QAC3BE,UAAU,EAAEsD,QAAQ,CAACtD,UAAU;QAC/BD,KAAK,EAAEuD,QAAQ,CAACvD;MAClB,CAAC,GACDQ;IACN,CAAC,CAAC;IAEF,MAAMI,MAAM,CAAC,CAAC,CAACuB,IAAI,CAAC0B,sBAAsB,CAAC,MAAMC,OAAO,CAACC,OAAO,CAACP,MAAM,CAAC,CAAC;IACzEhC,gBAAgB,CAAC5B,OAAO,CAAC;IACzB,MAAML,SAAS,GAAG,MAAMqB,MAAM,CAAC,CAAC,CAACuB,IAAI,CAACgB,cAAc,CAAC,CAAC;IACtD,MAAMa,SAAS,GAAGrE,WAAW,CAACC,OAAO,EAAEL,SAAS,CAAC;IACjDyE,SAAS,CAACP,KAAK,GAAGA,KAAK;IACvB,OAAOO,SAAS;EAClB,CAAC;EAEDZ,MAAM,EAAE,MAAAA,CAAA,KAAY;IAClB,MAAMxC,MAAM,CAAC,CAAC,CAACuB,IAAI,CAAC8B,OAAO,CAAC,CAAC;IAC7BzC,gBAAgB,CAAC,CAAC;EACpB,CAAC;EAED0C,UAAU,EAAE,MAAAA,CAAOC,IAAc,EAAEC,MAAa,KAAwB;IACtE,MAAM9B,GAAG,GAAGJ,MAAM,CAAC,CAAC;IACpB,IAAI,CAACI,GAAG,EAAE,MAAM,IAAIpB,KAAK,CAAC,oBAAoB,CAAC;IAE/C,MAAMmD,QAA2D,GAAG,CAAC,CAAC;IACtE,MAAMC,WAAqB,GAAG,EAAE;IAChC,MAAMC,aAAoB,GAAG,EAAE;IAC/B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,IAAI,CAACM,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;MACvC,IAAIL,IAAI,CAACK,CAAC,CAAC,KAAK,UAAU,EAAEH,QAAQ,CAACtE,QAAQ,GAAGqE,MAAM,CAACI,CAAC,CAAC,CAAC,KACrD,IAAIL,IAAI,CAACK,CAAC,CAAC,KAAK,OAAO,EAAEH,QAAQ,CAACrE,KAAK,GAAGoE,MAAM,CAACI,CAAC,CAAC,CAAC,KACpD,IAAIL,IAAI,CAACK,CAAC,CAAC,KAAK,YAAY,EAAEH,QAAQ,CAACK,UAAU,GAAGN,MAAM,CAACI,CAAC,CAAC,CAAC,KAC9D;QACHF,WAAW,CAACK,IAAI,CAACR,IAAI,CAACK,CAAC,CAAC,CAAC;QACzBD,aAAa,CAACI,IAAI,CAACP,MAAM,CAACI,CAAC,CAAC,CAAC;MAC/B;IACF;IACA,IAAII,MAAM,CAACT,IAAI,CAACE,QAAQ,CAAC,CAACI,MAAM,GAAG,CAAC,EAAE;MACpC,MAAM7D,MAAM,CAAC,CAAC,CAACuB,IAAI,CAAC0C,mBAAmB,CAACR,QAAQ,CAAC;IACnD;IAEA,IAAIzE,OAAO;IACX,IAAI0E,WAAW,CAACG,MAAM,GAAG,CAAC,EAAE;MAC1B,MAAMhC,QAAQ,GAAG,MAAMF,WAAW,CAAC;QACjCmB,MAAM,EAAE,YAAY;QACpBpB,GAAG;QACH6B,IAAI,EAAEG,WAAW;QACjBF,MAAM,EAAEG;MACV,CAAC,CAAC;MACF3E,OAAO,GAAG6C,QAAQ,CAAC7C,OAAO;MAC1B4B,gBAAgB,CAAC5B,OAAO,CAAC;IAC3B,CAAC,MAAM;MACLA,OAAO,GAAGkC,gBAAgB,CAAC,CAAC;IAC9B;IAEA,IAAI,CAAClC,OAAO,EAAE,MAAM,IAAIsB,KAAK,CAAC,2BAA2B,CAAC;IAC1D,OAAOvB,WAAW,CAACC,OAAO,EAAE,MAAMgB,MAAM,CAAC,CAAC,CAACuB,IAAI,CAACgB,cAAc,CAAC,CAAC,CAAC;EACnE,CAAC;EAED2B,WAAW,EAAE,MAAAA,CAAA,KAAY;IACvB,MAAMxC,GAAG,GAAGJ,MAAM,CAAC,CAAC;IACpB,IAAI,CAACI,GAAG,EAAE,MAAM,IAAIpB,KAAK,CAAC,oBAAoB,CAAC;IAE/C,MAAMN,MAAM,CAAC,CAAC,CAACmE,YAAY,CAAC;MAC1BtF,IAAI,EAAE,MAAM;MACZuF,IAAI,EAAE;QAAEtB,MAAM,EAAE;MAAc;IAChC,CAAC,CAAC;IACF,MAAMV,aAAa,CAACI,MAAM,CAAC,CAAC;EAC9B;AACF,CAAC","ignoreList":[]}
@@ -15,10 +15,21 @@ const LOGIN_TYPE_MAP = {
15
15
  huawei: LoginType.LoginTypeHuawei,
16
16
  apple: LoginType.LoginTypeApple
17
17
  };
18
+ // 使用自定义登录创建用户后,Name 是必填,nickname 不填
19
+ // - 没设置昵称时:name === username === 实际的用户名
20
+ // - 设置昵称后:name === 昵称,username === 实际的用户名
21
+ // - 无论什么情况,nickName 一直是 undefined
22
+ const getCloudBaseNickname = cloudUser => {
23
+ if (cloudUser?.nickName) return cloudUser.nickName;
24
+ if (cloudUser?.name && cloudUser.name !== cloudUser.username) {
25
+ return cloudUser.name;
26
+ }
27
+ return '';
28
+ };
18
29
  const toLocalUser = (profile, cloudUser) => {
19
30
  return {
20
31
  id: profile._id,
21
- nickname: cloudUser?.name || '',
32
+ nickname: getCloudBaseNickname(cloudUser),
22
33
  email: cloudUser?.email || '',
23
34
  headimgurl: cloudUser?.picture || '',
24
35
  type: LOGIN_TYPE_MAP[profile.loginType],
@@ -56,6 +67,10 @@ const setCachedProfile = profile => {
56
67
  SyncPrefData.set(CACHED_PROFILE_KEY, JSON.stringify(profile));
57
68
  }
58
69
  };
70
+ const getCachedProfile = () => {
71
+ const raw = SyncPrefData.getString(CACHED_PROFILE_KEY);
72
+ return raw ? JSON.parse(raw) : null;
73
+ };
59
74
  const getUid = () => {
60
75
  return getApp().auth.hasLoginState()?.user.uid;
61
76
  };
@@ -80,8 +95,7 @@ export const CloudBaseAuth = {
80
95
  setCachedProfile();
81
96
  return null;
82
97
  }
83
- const raw = SyncPrefData.getString(CACHED_PROFILE_KEY);
84
- const profile = raw ? JSON.parse(raw) : null;
98
+ const profile = getCachedProfile();
85
99
  if (profile?._id === uid) {
86
100
  return toLocalUser(profile, await getApp().auth.getCurrentUser());
87
101
  }
@@ -108,7 +122,8 @@ export const CloudBaseAuth = {
108
122
  });
109
123
  await getApp().auth.signInWithCustomTicket(() => Promise.resolve(ticket));
110
124
  setCachedProfile(profile);
111
- const localUser = toLocalUser(profile, await getApp().auth.getCurrentUser());
125
+ const cloudUser = await getApp().auth.getCurrentUser();
126
+ const localUser = toLocalUser(profile, cloudUser);
112
127
  localUser.isNew = isNew;
113
128
  return localUser;
114
129
  },
@@ -119,15 +134,32 @@ export const CloudBaseAuth = {
119
134
  updateUser: async (keys, values) => {
120
135
  const uid = getUid();
121
136
  if (!uid) throw new Error('User Not Login Yet');
122
- const {
123
- profile
124
- } = await requestAuth({
125
- action: 'updateUser',
126
- uid,
127
- keys,
128
- values
129
- });
130
- setCachedProfile(profile);
137
+ const userInfo = {};
138
+ const profileKeys = [];
139
+ const profileValues = [];
140
+ for (let i = 0; i < keys.length; i += 1) {
141
+ if (keys[i] === 'nickname') userInfo.nickname = values[i];else if (keys[i] === 'email') userInfo.email = values[i];else if (keys[i] === 'headimgurl') userInfo.avatar_url = values[i];else {
142
+ profileKeys.push(keys[i]);
143
+ profileValues.push(values[i]);
144
+ }
145
+ }
146
+ if (Object.keys(userInfo).length > 0) {
147
+ await getApp().auth.updateUserBasicInfo(userInfo);
148
+ }
149
+ let profile;
150
+ if (profileKeys.length > 0) {
151
+ const response = await requestAuth({
152
+ action: 'updateUser',
153
+ uid,
154
+ keys: profileKeys,
155
+ values: profileValues
156
+ });
157
+ profile = response.profile;
158
+ setCachedProfile(profile);
159
+ } else {
160
+ profile = getCachedProfile();
161
+ }
162
+ if (!profile) throw new Error('CloudBase profile missing');
131
163
  return toLocalUser(profile, await getApp().auth.getCurrentUser());
132
164
  },
133
165
  destroyUser: async () => {
@@ -1 +1 @@
1
- {"version":3,"names":["adapter","cloudbase","LoginType","SyncPrefData","ToolkitConfig","useAdapters","app","authUrl","CACHED_PROFILE_KEY","LOGIN_TYPE_MAP","wechat","LoginTypeWeChat","visitor","LoginTypeVisitor","huawei","LoginTypeHuawei","apple","LoginTypeApple","toLocalUser","profile","cloudUser","id","_id","nickname","name","email","headimgurl","picture","type","loginType","vipType","vipEndTime","Date","undefined","createdAt","attr","webdav","getApp","CloudBaseEnv","CloudBaseAccessKey","CloudBaseRegion","CloudBaseAuthUrl","Error","init","env","region","accessKey","endPointMode","setCachedProfile","delete","set","JSON","stringify","getUid","auth","hasLoginState","user","uid","requestAuth","body","response","fetch","method","headers","ok","status","json","CloudBaseAuth","getLocalUser","raw","getString","parse","getCurrentUser","logout","login","authData","userData","ticket","isNew","action","openid","unionid","signInWithCustomTicket","Promise","resolve","localUser","signOut","updateUser","keys","values","destroyUser","callFunction","data"],"sourceRoot":"../../src","sources":["CloudBaseAuth.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["adapter","cloudbase","LoginType","SyncPrefData","ToolkitConfig","useAdapters","app","authUrl","CACHED_PROFILE_KEY","LOGIN_TYPE_MAP","wechat","LoginTypeWeChat","visitor","LoginTypeVisitor","huawei","LoginTypeHuawei","apple","LoginTypeApple","getCloudBaseNickname","cloudUser","nickName","name","username","toLocalUser","profile","id","_id","nickname","email","headimgurl","picture","type","loginType","vipType","vipEndTime","Date","undefined","createdAt","attr","webdav","getApp","CloudBaseEnv","CloudBaseAccessKey","CloudBaseRegion","CloudBaseAuthUrl","Error","init","env","region","accessKey","endPointMode","setCachedProfile","delete","set","JSON","stringify","getCachedProfile","raw","getString","parse","getUid","auth","hasLoginState","user","uid","requestAuth","body","response","fetch","method","headers","ok","status","json","CloudBaseAuth","getLocalUser","getCurrentUser","logout","login","authData","userData","ticket","isNew","action","openid","unionid","signInWithCustomTicket","Promise","resolve","localUser","signOut","updateUser","keys","values","userInfo","profileKeys","profileValues","i","length","avatar_url","push","Object","updateUserBasicInfo","destroyUser","callFunction","data"],"sourceRoot":"../../src","sources":["CloudBaseAuth.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"CloudBaseAuth.d.ts","sourceRoot":"","sources":["../../src/CloudBaseAuth.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAEjB,iBAAiB,EACjB,QAAQ,EACT,MAAM,YAAY,CAAC;AA4GpB,eAAO,MAAM,aAAa;wBACA,QAAQ,QAAQ,GAAG,IAAI,CAAC;sBAkBpC,iBAAiB,aAChB,iBAAiB,KAC3B,QAAQ,QAAQ,CAAC;;uBAgCK,MAAM,EAAE,UAAU,GAAG,EAAE,KAAG,QAAQ,QAAQ,CAAC;;CAwBrE,CAAC"}
1
+ {"version":3,"file":"CloudBaseAuth.d.ts","sourceRoot":"","sources":["../../src/CloudBaseAuth.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAEjB,iBAAiB,EACjB,QAAQ,EACT,MAAM,YAAY,CAAC;AA+HpB,eAAO,MAAM,aAAa;wBACA,QAAQ,QAAQ,GAAG,IAAI,CAAC;sBAiBpC,iBAAiB,aAChB,iBAAiB,KAC3B,QAAQ,QAAQ,CAAC;;uBA8BK,MAAM,EAAE,UAAU,GAAG,EAAE,KAAG,QAAQ,QAAQ,CAAC;;CAgDrE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norcy/react-native-toolkit",
3
- "version": "0.3.39",
3
+ "version": "0.3.41",
4
4
  "private": false,
5
5
  "description": "My Toolkit",
6
6
  "main": "lib/commonjs/index",
@@ -38,18 +38,32 @@ interface AuthResponse {
38
38
  }
39
39
 
40
40
  interface CloudBaseUserInfo {
41
+ nickName?: string;
41
42
  name?: string;
43
+ username?: string;
42
44
  email?: string;
43
45
  picture?: string;
44
46
  }
45
47
 
48
+ // 使用自定义登录创建用户后,Name 是必填,nickname 不填
49
+ // - 没设置昵称时:name === username === 实际的用户名
50
+ // - 设置昵称后:name === 昵称,username === 实际的用户名
51
+ // - 无论什么情况,nickName 一直是 undefined
52
+ const getCloudBaseNickname = (cloudUser?: CloudBaseUserInfo | null) => {
53
+ if (cloudUser?.nickName) return cloudUser.nickName;
54
+ if (cloudUser?.name && cloudUser.name !== cloudUser.username) {
55
+ return cloudUser.name;
56
+ }
57
+ return '';
58
+ };
59
+
46
60
  const toLocalUser = (
47
61
  profile: CloudBaseProfile,
48
62
  cloudUser?: CloudBaseUserInfo | null
49
63
  ): UserType => {
50
64
  return {
51
65
  id: profile._id,
52
- nickname: cloudUser?.name || '',
66
+ nickname: getCloudBaseNickname(cloudUser),
53
67
  email: cloudUser?.email || '',
54
68
  headimgurl: cloudUser?.picture || '',
55
69
  type: LOGIN_TYPE_MAP[profile.loginType],
@@ -94,6 +108,11 @@ const setCachedProfile = (profile?: CloudBaseProfile) => {
94
108
  }
95
109
  };
96
110
 
111
+ const getCachedProfile = () => {
112
+ const raw = SyncPrefData.getString(CACHED_PROFILE_KEY);
113
+ return raw ? (JSON.parse(raw) as CloudBaseProfile) : null;
114
+ };
115
+
97
116
  const getUid = () => {
98
117
  return getApp().auth.hasLoginState()?.user.uid;
99
118
  };
@@ -121,8 +140,7 @@ export const CloudBaseAuth = {
121
140
  return null;
122
141
  }
123
142
 
124
- const raw = SyncPrefData.getString(CACHED_PROFILE_KEY);
125
- const profile = raw ? (JSON.parse(raw) as CloudBaseProfile) : null;
143
+ const profile = getCachedProfile();
126
144
  if (profile?._id === uid) {
127
145
  return toLocalUser(profile, await getApp().auth.getCurrentUser());
128
146
  }
@@ -153,10 +171,8 @@ export const CloudBaseAuth = {
153
171
 
154
172
  await getApp().auth.signInWithCustomTicket(() => Promise.resolve(ticket));
155
173
  setCachedProfile(profile);
156
- const localUser = toLocalUser(
157
- profile,
158
- await getApp().auth.getCurrentUser()
159
- );
174
+ const cloudUser = await getApp().auth.getCurrentUser();
175
+ const localUser = toLocalUser(profile, cloudUser);
160
176
  localUser.isNew = isNew;
161
177
  return localUser;
162
178
  },
@@ -170,13 +186,37 @@ export const CloudBaseAuth = {
170
186
  const uid = getUid();
171
187
  if (!uid) throw new Error('User Not Login Yet');
172
188
 
173
- const { profile } = await requestAuth({
174
- action: 'updateUser',
175
- uid,
176
- keys,
177
- values,
178
- });
179
- setCachedProfile(profile);
189
+ const userInfo: { nickname?: any; email?: any; avatar_url?: any } = {};
190
+ const profileKeys: string[] = [];
191
+ const profileValues: any[] = [];
192
+ for (let i = 0; i < keys.length; i += 1) {
193
+ if (keys[i] === 'nickname') userInfo.nickname = values[i];
194
+ else if (keys[i] === 'email') userInfo.email = values[i];
195
+ else if (keys[i] === 'headimgurl') userInfo.avatar_url = values[i];
196
+ else {
197
+ profileKeys.push(keys[i]);
198
+ profileValues.push(values[i]);
199
+ }
200
+ }
201
+ if (Object.keys(userInfo).length > 0) {
202
+ await getApp().auth.updateUserBasicInfo(userInfo);
203
+ }
204
+
205
+ let profile;
206
+ if (profileKeys.length > 0) {
207
+ const response = await requestAuth({
208
+ action: 'updateUser',
209
+ uid,
210
+ keys: profileKeys,
211
+ values: profileValues,
212
+ });
213
+ profile = response.profile;
214
+ setCachedProfile(profile);
215
+ } else {
216
+ profile = getCachedProfile();
217
+ }
218
+
219
+ if (!profile) throw new Error('CloudBase profile missing');
180
220
  return toLocalUser(profile, await getApp().auth.getCurrentUser());
181
221
  },
182
222