@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
|
|
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
|
|
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
|
|
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
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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","
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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","
|
|
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":";;AAAA,OAAOA,OAAO,MAAM,uBAAuB;AAC3C,OAAOC,SAAS,MAAM,mBAAmB;AACzC,SAEEC,SAAS,QAGJ,YAAY;AACnB,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,aAAa,QAAQ,QAAQ;AAEtCH,SAAS,CAACI,WAAW,CAACL,OAAO,CAAC;AAE9B,IAAIM,GAA6B,GAAG,IAAI;AACxC,IAAIC,OAAO,GAAG,EAAE;AAChB,MAAMC,kBAAkB,GAAG,gCAAgC;AAC3D,MAAMC,cAAsC,GAAG;EAC7CC,MAAM,EAAER,SAAS,CAACS,eAAe;EACjCC,OAAO,EAAEV,SAAS,CAACW,gBAAgB;EACnCC,MAAM,EAAEZ,SAAS,CAACa,eAAe;EACjCC,KAAK,EAAEd,SAAS,CAACe;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,EAAEtB,cAAc,CAACe,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,IAAIlC,GAAG,EAAE,OAAOA,GAAG;EAEnB,MAAM;IACJmC,YAAY;IACZC,kBAAkB;IAClBC,eAAe;IACfC;EACF,CAAC,GAAGxC,aAAa;EACjB,IAAI,CAACqC,YAAY,IAAI,CAACC,kBAAkB,IAAI,CAACE,gBAAgB,EAAE;IAC7D,MAAM,IAAIC,KAAK,CACb,sGACF,CAAC;EACH;EAEAvC,GAAG,GAAGL,SAAS,CAAC6C,IAAI,CAAC;IACnBC,GAAG,EAAEN,YAAY;IACjBO,MAAM,EAAEL,eAAe,IAAI,aAAa;IACxCM,SAAS,EAAEP,kBAAkB;IAC7BQ,YAAY,EAAE;EAChB,CAAC,CAAC;EACF3C,OAAO,GAAGqC,gBAAgB;EAC1B,OAAOtC,GAAG;AACZ,CAAC;AAED,MAAM6C,gBAAgB,GAAI3B,OAA0B,IAAK;EACvD,IAAI,CAACA,OAAO,EAAE;IACZrB,YAAY,CAACiD,MAAM,CAAC5C,kBAAkB,CAAC;EACzC,CAAC,MAAM;IACLL,YAAY,CAACkD,GAAG,CAAC7C,kBAAkB,EAAE8C,IAAI,CAACC,SAAS,CAAC/B,OAAO,CAAC,CAAC;EAC/D;AACF,CAAC;AAED,MAAMgC,gBAAgB,GAAGA,CAAA,KAAM;EAC7B,MAAMC,GAAG,GAAGtD,YAAY,CAACuD,SAAS,CAAClD,kBAAkB,CAAC;EACtD,OAAOiD,GAAG,GAAIH,IAAI,CAACK,KAAK,CAACF,GAAG,CAAC,GAAwB,IAAI;AAC3D,CAAC;AAED,MAAMG,MAAM,GAAGA,CAAA,KAAM;EACnB,OAAOpB,MAAM,CAAC,CAAC,CAACqB,IAAI,CAACC,aAAa,CAAC,CAAC,EAAEC,IAAI,CAACC,GAAG;AAChD,CAAC;AAED,MAAMC,WAAW,GAAG,MAAOC,IAA6B,IAAK;EAC3D1B,MAAM,CAAC,CAAC;EACR,MAAM2B,QAAQ,GAAG,MAAMC,KAAK,CAAC7D,OAAO,EAAE;IACpC8D,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,IAAI1B,KAAK,CAAC,0BAA0BsB,QAAQ,CAACK,MAAM,EAAE,CAAC;EAC9D;EAEA,OAAOL,QAAQ,CAACM,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,OAAO,MAAMC,aAAa,GAAG;EAC3BC,YAAY,EAAE,MAAAA,CAAA,KAAsC;IAClD,MAAMX,GAAG,GAAGJ,MAAM,CAAC,CAAC;IACpB,IAAI,CAACI,GAAG,EAAE;MACRb,gBAAgB,CAAC,CAAC;MAClB,OAAO,IAAI;IACb;IAEA,MAAM3B,OAAO,GAAGgC,gBAAgB,CAAC,CAAC;IAClC,IAAIhC,OAAO,EAAEE,GAAG,KAAKsC,GAAG,EAAE;MACxB,OAAOzC,WAAW,CAACC,OAAO,EAAE,MAAMgB,MAAM,CAAC,CAAC,CAACqB,IAAI,CAACe,cAAc,CAAC,CAAC,CAAC;IACnE;IAEA,MAAMF,aAAa,CAACG,MAAM,CAAC,CAAC;IAC5B,OAAO,IAAI;EACb,CAAC;EAEDC,KAAK,EAAE,MAAAA,CACLC,QAA2B,EAC3BC,QAA4B,KACN;IACtB,MAAM;MAAEC,MAAM;MAAEzD,OAAO;MAAE0D;IAAM,CAAC,GAAG,MAAMjB,WAAW,CAAC;MACnDkB,MAAM,EAAE,OAAO;MACfJ,QAAQ,EAAE;QACRK,MAAM,EAAEL,QAAQ,CAACK,MAAM;QACvBC,OAAO,EAAEN,QAAQ,CAACM,OAAO;QACzBrD,SAAS,EAAE+C,QAAQ,CAAC/C;MACtB,CAAC;MACDgD,QAAQ,EAAEA,QAAQ,GACd;QACErD,QAAQ,EAAEqD,QAAQ,CAACrD,QAAQ;QAC3BE,UAAU,EAAEmD,QAAQ,CAACnD,UAAU;QAC/BD,KAAK,EAAEoD,QAAQ,CAACpD;MAClB,CAAC,GACDQ;IACN,CAAC,CAAC;IAEF,MAAMI,MAAM,CAAC,CAAC,CAACqB,IAAI,CAACyB,sBAAsB,CAAC,MAAMC,OAAO,CAACC,OAAO,CAACP,MAAM,CAAC,CAAC;IACzE9B,gBAAgB,CAAC3B,OAAO,CAAC;IACzB,MAAML,SAAS,GAAG,MAAMqB,MAAM,CAAC,CAAC,CAACqB,IAAI,CAACe,cAAc,CAAC,CAAC;IACtD,MAAMa,SAAS,GAAGlE,WAAW,CAACC,OAAO,EAAEL,SAAS,CAAC;IACjDsE,SAAS,CAACP,KAAK,GAAGA,KAAK;IACvB,OAAOO,SAAS;EAClB,CAAC;EAEDZ,MAAM,EAAE,MAAAA,CAAA,KAAY;IAClB,MAAMrC,MAAM,CAAC,CAAC,CAACqB,IAAI,CAAC6B,OAAO,CAAC,CAAC;IAC7BvC,gBAAgB,CAAC,CAAC;EACpB,CAAC;EAEDwC,UAAU,EAAE,MAAAA,CAAOC,IAAc,EAAEC,MAAa,KAAwB;IACtE,MAAM7B,GAAG,GAAGJ,MAAM,CAAC,CAAC;IACpB,IAAI,CAACI,GAAG,EAAE,MAAM,IAAInB,KAAK,CAAC,oBAAoB,CAAC;IAE/C,MAAMiD,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,CAACnE,QAAQ,GAAGkE,MAAM,CAACI,CAAC,CAAC,CAAC,KACrD,IAAIL,IAAI,CAACK,CAAC,CAAC,KAAK,OAAO,EAAEH,QAAQ,CAAClE,KAAK,GAAGiE,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,MAAM1D,MAAM,CAAC,CAAC,CAACqB,IAAI,CAACyC,mBAAmB,CAACR,QAAQ,CAAC;IACnD;IAEA,IAAItE,OAAO;IACX,IAAIuE,WAAW,CAACG,MAAM,GAAG,CAAC,EAAE;MAC1B,MAAM/B,QAAQ,GAAG,MAAMF,WAAW,CAAC;QACjCkB,MAAM,EAAE,YAAY;QACpBnB,GAAG;QACH4B,IAAI,EAAEG,WAAW;QACjBF,MAAM,EAAEG;MACV,CAAC,CAAC;MACFxE,OAAO,GAAG2C,QAAQ,CAAC3C,OAAO;MAC1B2B,gBAAgB,CAAC3B,OAAO,CAAC;IAC3B,CAAC,MAAM;MACLA,OAAO,GAAGgC,gBAAgB,CAAC,CAAC;IAC9B;IAEA,IAAI,CAAChC,OAAO,EAAE,MAAM,IAAIqB,KAAK,CAAC,2BAA2B,CAAC;IAC1D,OAAOtB,WAAW,CAACC,OAAO,EAAE,MAAMgB,MAAM,CAAC,CAAC,CAACqB,IAAI,CAACe,cAAc,CAAC,CAAC,CAAC;EACnE,CAAC;EAED2B,WAAW,EAAE,MAAAA,CAAA,KAAY;IACvB,MAAMvC,GAAG,GAAGJ,MAAM,CAAC,CAAC;IACpB,IAAI,CAACI,GAAG,EAAE,MAAM,IAAInB,KAAK,CAAC,oBAAoB,CAAC;IAE/C,MAAML,MAAM,CAAC,CAAC,CAACgE,YAAY,CAAC;MAC1BnF,IAAI,EAAE,MAAM;MACZoF,IAAI,EAAE;QAAEtB,MAAM,EAAE;MAAc;IAChC,CAAC,CAAC;IACF,MAAMT,aAAa,CAACG,MAAM,CAAC,CAAC;EAC9B;AACF,CAAC","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;
|
|
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
package/src/CloudBaseAuth.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
157
|
-
|
|
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 {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
values
|
|
178
|
-
|
|
179
|
-
|
|
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
|
|