@norcy/react-native-toolkit 0.1.11 → 0.1.12
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.
- package/lib/commonjs/LoginManager.js +355 -0
- package/lib/commonjs/LoginManager.js.map +1 -0
- package/lib/commonjs/Notification.js.map +1 -1
- package/lib/commonjs/constant.js.map +1 -1
- package/lib/commonjs/index.js +12 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/LoginManager.js +349 -0
- package/lib/module/LoginManager.js.map +1 -0
- package/lib/module/Notification.js.map +1 -1
- package/lib/module/constant.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/LoginManager.d.ts +17 -0
- package/lib/typescript/Notification.d.ts +1 -1
- package/lib/typescript/constant.d.ts +15 -0
- package/lib/typescript/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/LoginManager.ts +357 -0
- package/src/Notification.ts +1 -1
- package/src/constant.ts +17 -0
- package/src/index.tsx +1 -0
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactNativeToolkit = require("@norcy/react-native-toolkit");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeDeviceInfo = require("react-native-device-info");
|
|
10
|
+
var _constant = require("./constant");
|
|
11
|
+
var _i18n = require("./i18n");
|
|
12
|
+
const AV = require('leancloud-storage');
|
|
13
|
+
let CURRENT_USER = null;
|
|
14
|
+
let WeiXinId = '';
|
|
15
|
+
let WeiXinSecret = '';
|
|
16
|
+
const AVUserToLocalUser = user => {
|
|
17
|
+
return {
|
|
18
|
+
nickname: user.get('nickname'),
|
|
19
|
+
email: user.get('email'),
|
|
20
|
+
headimgurl: user.get('headimgurl'),
|
|
21
|
+
type: user.get('type'),
|
|
22
|
+
AVUser: user
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
const onLoginFinish = _ref => {
|
|
26
|
+
let {
|
|
27
|
+
isAuto = false,
|
|
28
|
+
user,
|
|
29
|
+
error,
|
|
30
|
+
code
|
|
31
|
+
} = _ref;
|
|
32
|
+
const data = {
|
|
33
|
+
isAuto,
|
|
34
|
+
user,
|
|
35
|
+
error,
|
|
36
|
+
code
|
|
37
|
+
};
|
|
38
|
+
if (user) {
|
|
39
|
+
_reactNativeToolkit.PrefData.setValue(_reactNativeToolkit.BuildInPrefs.LastLoginType, user.type);
|
|
40
|
+
}
|
|
41
|
+
_reactNativeToolkit.Notification.postNotification('onLogin', data);
|
|
42
|
+
};
|
|
43
|
+
const doLeanCloudLogin = async (authData, userData, callback) => {
|
|
44
|
+
console.log('Lean Cloud 开始登录', userData);
|
|
45
|
+
// loginType 空说明是老用户
|
|
46
|
+
const loginType = authData.loginType ? authData.loginType : 'apple';
|
|
47
|
+
let loginTypeNum = _reactNativeToolkit.LoginType.LoginTypeApple;
|
|
48
|
+
if (loginType === 'wechat') {
|
|
49
|
+
loginTypeNum = _reactNativeToolkit.LoginType.LoginTypeWeChat;
|
|
50
|
+
} else if (loginType === 'visitor') {
|
|
51
|
+
loginTypeNum = _reactNativeToolkit.LoginType.LoginTypeVisitor;
|
|
52
|
+
}
|
|
53
|
+
AV.User.loginWithAuthData(authData, loginType, {
|
|
54
|
+
failOnNotExist: true
|
|
55
|
+
}).then(user => {
|
|
56
|
+
// 登录成功
|
|
57
|
+
console.log('Lean Cloud 登录成功');
|
|
58
|
+
// 每次重新鉴权都更新头像和昵称,避免微信头像过期
|
|
59
|
+
// if (userData?.nickname) {
|
|
60
|
+
// user.set('nickname', userData?.nickname);
|
|
61
|
+
// }
|
|
62
|
+
// if (userData?.headimgurl) {
|
|
63
|
+
// user.set('headimgurl', userData?.headimgurl);
|
|
64
|
+
// }
|
|
65
|
+
// user.save();
|
|
66
|
+
CURRENT_USER = AVUserToLocalUser(user);
|
|
67
|
+
callback({
|
|
68
|
+
user: CURRENT_USER
|
|
69
|
+
});
|
|
70
|
+
}, error => {
|
|
71
|
+
if (error.code === 211) {
|
|
72
|
+
// 创建用户,并补充资料
|
|
73
|
+
console.log('创建用户,并补充资料');
|
|
74
|
+
const newUser = new AV.User();
|
|
75
|
+
const email = userData === null || userData === void 0 ? void 0 : userData.email;
|
|
76
|
+
if (email) {
|
|
77
|
+
newUser.setEmail(email);
|
|
78
|
+
}
|
|
79
|
+
newUser.set('nickname', userData === null || userData === void 0 ? void 0 : userData.nickname);
|
|
80
|
+
newUser.set('headimgurl', userData === null || userData === void 0 ? void 0 : userData.headimgurl);
|
|
81
|
+
newUser.set('type', loginTypeNum);
|
|
82
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
83
|
+
newUser.set('source', 2);
|
|
84
|
+
}
|
|
85
|
+
newUser.set('toLDB', 1);
|
|
86
|
+
newUser.loginWithAuthData(authData, loginType).then(user => {
|
|
87
|
+
// 登录成功
|
|
88
|
+
console.log('Lean Cloud 注册成功');
|
|
89
|
+
CURRENT_USER = AVUserToLocalUser(user);
|
|
90
|
+
CURRENT_USER.isNew = true;
|
|
91
|
+
// 标记为当前用户是在本机注册的 TODO
|
|
92
|
+
// PrefData.setValue(Prefs.RegisterInThisDevice, true);
|
|
93
|
+
callback({
|
|
94
|
+
user: CURRENT_USER
|
|
95
|
+
});
|
|
96
|
+
}, error2 => {
|
|
97
|
+
// 登录失败
|
|
98
|
+
console.log('Lean Cloud 登录失败', error2);
|
|
99
|
+
callback({
|
|
100
|
+
error: error2
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
} else {
|
|
104
|
+
// 登录失败
|
|
105
|
+
console.log('Lean Cloud 登录失败', error);
|
|
106
|
+
callback({
|
|
107
|
+
error: error
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
const LoginManager = {
|
|
113
|
+
setup: (WeChatId, WeChatSecret) => {
|
|
114
|
+
WeiXinId = WeChatId;
|
|
115
|
+
WeChatSecret = WeChatSecret;
|
|
116
|
+
},
|
|
117
|
+
// 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败
|
|
118
|
+
autoLogin: async () => {
|
|
119
|
+
const user = await AV.User.currentAsync();
|
|
120
|
+
if (user) {
|
|
121
|
+
console.log('自动登录成功');
|
|
122
|
+
CURRENT_USER = AVUserToLocalUser(user);
|
|
123
|
+
onLoginFinish({
|
|
124
|
+
isAuto: true,
|
|
125
|
+
user: CURRENT_USER
|
|
126
|
+
});
|
|
127
|
+
} else {
|
|
128
|
+
onLoginFinish({
|
|
129
|
+
isAuto: true,
|
|
130
|
+
error: 'User Not Login Yet'
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
// 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权
|
|
135
|
+
login: async function (type) {
|
|
136
|
+
let devAuthData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
137
|
+
let loadingCallback = arguments.length > 2 ? arguments[2] : undefined;
|
|
138
|
+
// 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData
|
|
139
|
+
const cuurentUser = await AV.User.currentAsync();
|
|
140
|
+
if (cuurentUser) {
|
|
141
|
+
await LoginManager.autoLogin();
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// 改为注入 delegate
|
|
146
|
+
if (__DEV__) {
|
|
147
|
+
if (devAuthData) {
|
|
148
|
+
doLeanCloudLogin(devAuthData, undefined, _ref2 => {
|
|
149
|
+
let {
|
|
150
|
+
user,
|
|
151
|
+
error
|
|
152
|
+
} = _ref2;
|
|
153
|
+
onLoginFinish({
|
|
154
|
+
user,
|
|
155
|
+
error
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (type === _reactNativeToolkit.LoginType.LoginTypeApple) {
|
|
162
|
+
const {
|
|
163
|
+
user,
|
|
164
|
+
email,
|
|
165
|
+
identityToken,
|
|
166
|
+
error,
|
|
167
|
+
code
|
|
168
|
+
} = await _reactNativeToolkit.AppleLoginUtil.requestAppleUserForLogin();
|
|
169
|
+
if (!user || error) {
|
|
170
|
+
onLoginFinish({
|
|
171
|
+
error,
|
|
172
|
+
code
|
|
173
|
+
});
|
|
174
|
+
return;
|
|
175
|
+
} else {
|
|
176
|
+
let userData = {
|
|
177
|
+
userId: user,
|
|
178
|
+
email: email,
|
|
179
|
+
authData: {
|
|
180
|
+
openid: user,
|
|
181
|
+
access_token: identityToken,
|
|
182
|
+
expires_in: 99999999,
|
|
183
|
+
loginType: 'apple'
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
_reactNativeToolkit.AppleLoginUtil.fetchAndUpdateCredentialState(userData.userId, _ref3 => {
|
|
187
|
+
let {
|
|
188
|
+
result,
|
|
189
|
+
error: error2
|
|
190
|
+
} = _ref3;
|
|
191
|
+
if (error || result !== _constant.LoginState.AUTHORIZED) {
|
|
192
|
+
onLoginFinish({
|
|
193
|
+
error: error2
|
|
194
|
+
});
|
|
195
|
+
} else {
|
|
196
|
+
loadingCallback && loadingCallback();
|
|
197
|
+
doLeanCloudLogin(userData.authData, userData, _ref4 => {
|
|
198
|
+
let {
|
|
199
|
+
user: loginUser,
|
|
200
|
+
error: error3
|
|
201
|
+
} = _ref4;
|
|
202
|
+
onLoginFinish({
|
|
203
|
+
user: loginUser,
|
|
204
|
+
error: error3
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
} else if (type === _reactNativeToolkit.LoginType.LoginTypeWeChat) {
|
|
211
|
+
_reactNativeToolkit.WeChatLoginUtil.doLogin(WeiXinId, WeiXinSecret, _ref5 => {
|
|
212
|
+
let {
|
|
213
|
+
nickname,
|
|
214
|
+
headimgurl,
|
|
215
|
+
openid,
|
|
216
|
+
unionid,
|
|
217
|
+
error
|
|
218
|
+
} = _ref5;
|
|
219
|
+
if (error) {
|
|
220
|
+
onLoginFinish({
|
|
221
|
+
error
|
|
222
|
+
});
|
|
223
|
+
} else {
|
|
224
|
+
let userData = {
|
|
225
|
+
nickname: nickname,
|
|
226
|
+
headimgurl: headimgurl,
|
|
227
|
+
authData: {
|
|
228
|
+
openid: openid,
|
|
229
|
+
unionid: unionid,
|
|
230
|
+
access_token: openid,
|
|
231
|
+
expires_in: 99999999,
|
|
232
|
+
loginType: 'wechat'
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
loadingCallback && loadingCallback();
|
|
236
|
+
doLeanCloudLogin(userData.authData, userData, _ref6 => {
|
|
237
|
+
let {
|
|
238
|
+
user,
|
|
239
|
+
error: error2
|
|
240
|
+
} = _ref6;
|
|
241
|
+
onLoginFinish({
|
|
242
|
+
user,
|
|
243
|
+
error: error2
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
} else if (type === _reactNativeToolkit.LoginType.LoginTypeVisitor) {
|
|
249
|
+
const uniqueId = (0, _reactNativeDeviceInfo.getUniqueIdSync)();
|
|
250
|
+
console.log(uniqueId);
|
|
251
|
+
let userData = {
|
|
252
|
+
nickname: _i18n.i18n.t('游客'),
|
|
253
|
+
authData: {
|
|
254
|
+
openid: uniqueId,
|
|
255
|
+
access_token: uniqueId,
|
|
256
|
+
expires_in: 99999999,
|
|
257
|
+
loginType: 'visitor'
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
loadingCallback && loadingCallback();
|
|
261
|
+
doLeanCloudLogin(userData.authData, userData, _ref7 => {
|
|
262
|
+
let {
|
|
263
|
+
user,
|
|
264
|
+
error
|
|
265
|
+
} = _ref7;
|
|
266
|
+
onLoginFinish({
|
|
267
|
+
user,
|
|
268
|
+
error
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
} else {
|
|
272
|
+
onLoginFinish({
|
|
273
|
+
error: _i18n.i18n.t('未知登录类型,不应该走到这')
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
logOut: callback => {
|
|
278
|
+
console.log('onLogout');
|
|
279
|
+
AV.User.logOut();
|
|
280
|
+
CURRENT_USER = null;
|
|
281
|
+
callback && callback();
|
|
282
|
+
_reactNativeToolkit.Notification.postNotification('onLogout');
|
|
283
|
+
},
|
|
284
|
+
isLogin: () => {
|
|
285
|
+
return LoginManager.currentUser() != null;
|
|
286
|
+
},
|
|
287
|
+
isVisitor: () => {
|
|
288
|
+
var _LoginManager$current;
|
|
289
|
+
return LoginManager.isLogin() && ((_LoginManager$current = LoginManager.currentUser()) === null || _LoginManager$current === void 0 ? void 0 : _LoginManager$current.type) === _reactNativeToolkit.LoginType.LoginTypeVisitor;
|
|
290
|
+
},
|
|
291
|
+
currentUser: () => {
|
|
292
|
+
// console.log('current user is ', CURRENT_USER);
|
|
293
|
+
return CURRENT_USER;
|
|
294
|
+
},
|
|
295
|
+
batchUpdateUser: async (keys, values, callback) => {
|
|
296
|
+
console.log('Batch Update User Begin: ' + keys + ' ' + values);
|
|
297
|
+
const user = await AV.User.currentAsync();
|
|
298
|
+
if (!user) {
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
const oldValues = [];
|
|
302
|
+
for (let i = 0; i < keys.length; i++) {
|
|
303
|
+
oldValues.push(user.get(keys[i]));
|
|
304
|
+
user.set(keys[i], values[i]);
|
|
305
|
+
}
|
|
306
|
+
try {
|
|
307
|
+
const newUser = await user.save();
|
|
308
|
+
CURRENT_USER = AVUserToLocalUser(newUser);
|
|
309
|
+
console.log('Batch Update User End', user);
|
|
310
|
+
callback && callback();
|
|
311
|
+
} catch (e) {
|
|
312
|
+
console.error(e);
|
|
313
|
+
for (let i = 0; i < keys.length; i++) {
|
|
314
|
+
user.set(keys[i], oldValues[i]);
|
|
315
|
+
}
|
|
316
|
+
callback && callback(e);
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
updateUser: (key, value, callback) => {
|
|
320
|
+
LoginManager.batchUpdateUser([key], [value], callback);
|
|
321
|
+
},
|
|
322
|
+
deleteUser: async callback => {
|
|
323
|
+
try {
|
|
324
|
+
if (!CURRENT_USER) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
if (CURRENT_USER.type === _reactNativeToolkit.LoginType.LoginTypeApple) {
|
|
328
|
+
await _reactNativeToolkit.AppleLoginUtil.requestDeleteAccount();
|
|
329
|
+
}
|
|
330
|
+
const user = await AV.User.currentAsync();
|
|
331
|
+
console.log('get user success');
|
|
332
|
+
await user.destroy();
|
|
333
|
+
console.log('delete user success');
|
|
334
|
+
callback();
|
|
335
|
+
} catch (error) {
|
|
336
|
+
console.error(error);
|
|
337
|
+
callback(error);
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
lastLoginType: () => {
|
|
341
|
+
return _reactNativeToolkit.PrefData.getValue(_reactNativeToolkit.BuildInPrefs.LastLoginType);
|
|
342
|
+
},
|
|
343
|
+
fetchWeChatAvatar: callback => {
|
|
344
|
+
_reactNativeToolkit.WeChatLoginUtil.doLogin(WeiXinId, WeiXinSecret, _ref8 => {
|
|
345
|
+
let {
|
|
346
|
+
headimgurl
|
|
347
|
+
} = _ref8;
|
|
348
|
+
callback({
|
|
349
|
+
headimgurl
|
|
350
|
+
});
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
var _default = exports.default = LoginManager;
|
|
355
|
+
//# sourceMappingURL=LoginManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeToolkit","require","_reactNative","_reactNativeDeviceInfo","_constant","_i18n","AV","CURRENT_USER","WeiXinId","WeiXinSecret","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","data","PrefData","setValue","BuildInPrefs","LastLoginType","Notification","postNotification","doLeanCloudLogin","authData","userData","callback","console","log","loginType","loginTypeNum","LoginType","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","Platform","OS","isNew","error2","LoginManager","setup","WeChatId","WeChatSecret","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","cuurentUser","__DEV__","_ref2","identityToken","AppleLoginUtil","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","LoginState","AUTHORIZED","_ref4","loginUser","error3","WeChatLoginUtil","doLogin","_ref5","unionid","_ref6","uniqueId","getUniqueIdSync","i18n","t","_ref7","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","fetchWeChatAvatar","_ref8","_default","exports","default"],"sources":["LoginManager.ts"],"sourcesContent":["import {\n AppleLoginUtil,\n BuildInPrefs,\n LoginType,\n Notification,\n PrefData,\n WeChatLoginUtil,\n} from '@norcy/react-native-toolkit';\nimport { User } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getUniqueIdSync } from 'react-native-device-info';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginUserDataType,\n UserType,\n} from './constant';\nimport { i18n } from './i18n';\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\n\nlet WeiXinId = '';\nlet WeiXinSecret = '';\n\nconst AVUserToLocalUser = (user: User) => {\n return {\n nickname: user.get('nickname'),\n email: user.get('email'),\n headimgurl: user.get('headimgurl'),\n type: user.get('type'),\n AVUser: user,\n };\n};\n\nconst onLoginFinish = ({\n isAuto = false,\n user,\n error,\n code,\n}: {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: number;\n}) => {\n const data = { isAuto, user, error, code };\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n }\n Notification.postNotification('onLogin', data);\n};\n\nconst doLeanCloudLogin = async (\n authData: LoginAuthDataType,\n userData: LoginUserDataType | undefined,\n callback: ({ user, error }: { user?: UserType; error?: any }) => void\n) => {\n console.log('Lean Cloud 开始登录', userData);\n // loginType 空说明是老用户\n const loginType = authData.loginType ? authData.loginType : 'apple';\n let loginTypeNum = LoginType.LoginTypeApple;\n if (loginType === 'wechat') {\n loginTypeNum = LoginType.LoginTypeWeChat;\n } else if (loginType === 'visitor') {\n loginTypeNum = LoginType.LoginTypeVisitor;\n }\n\n AV.User.loginWithAuthData(authData, loginType, { failOnNotExist: true }).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 登录成功');\n // 每次重新鉴权都更新头像和昵称,避免微信头像过期\n // if (userData?.nickname) {\n // user.set('nickname', userData?.nickname);\n // }\n // if (userData?.headimgurl) {\n // user.set('headimgurl', userData?.headimgurl);\n // }\n // user.save();\n CURRENT_USER = AVUserToLocalUser(user);\n callback({ user: CURRENT_USER });\n },\n (error: any) => {\n if (error.code === 211) {\n // 创建用户,并补充资料\n console.log('创建用户,并补充资料');\n const newUser = new AV.User();\n const email = userData?.email;\n if (email) {\n newUser.setEmail(email);\n }\n newUser.set('nickname', userData?.nickname);\n newUser.set('headimgurl', userData?.headimgurl);\n newUser.set('type', loginTypeNum);\n if (Platform.OS === 'android') {\n newUser.set('source', 2);\n }\n newUser.set('toLDB', 1);\n newUser.loginWithAuthData(authData, loginType).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 注册成功');\n CURRENT_USER = AVUserToLocalUser(user);\n CURRENT_USER.isNew = true;\n // 标记为当前用户是在本机注册的 TODO\n // PrefData.setValue(Prefs.RegisterInThisDevice, true);\n callback({ user: CURRENT_USER });\n },\n (error2: any) => {\n // 登录失败\n console.log('Lean Cloud 登录失败', error2);\n callback({ error: error2 });\n }\n );\n } else {\n // 登录失败\n console.log('Lean Cloud 登录失败', error);\n callback({ error: error });\n }\n }\n );\n};\n\nconst LoginManager = {\n setup: (WeChatId: string, WeChatSecret: string) => {\n WeiXinId = WeChatId;\n WeChatSecret = WeChatSecret;\n },\n\n // 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败\n autoLogin: async () => {\n const user = await AV.User.currentAsync();\n if (user) {\n console.log('自动登录成功');\n CURRENT_USER = AVUserToLocalUser(user);\n onLoginFinish({ isAuto: true, user: CURRENT_USER });\n } else {\n onLoginFinish({ isAuto: true, error: 'User Not Login Yet' });\n }\n },\n\n // 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权\n login: async (\n type: LoginType,\n devAuthData: LoginAuthDataType | null = null,\n loadingCallback: Function\n ) => {\n // 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData\n const cuurentUser = await AV.User.currentAsync();\n if (cuurentUser) {\n await LoginManager.autoLogin();\n return;\n }\n\n // 改为注入 delegate\n if (__DEV__) {\n if (devAuthData) {\n doLeanCloudLogin(devAuthData, undefined, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n return;\n }\n }\n\n if (type === LoginType.LoginTypeApple) {\n const { user, email, identityToken, error, code } =\n await AppleLoginUtil.requestAppleUserForLogin();\n if (!user || error) {\n onLoginFinish({ error, code });\n return;\n } else {\n let userData = {\n userId: user,\n email: email,\n authData: {\n openid: user,\n access_token: identityToken,\n expires_in: 99999999,\n loginType: 'apple',\n },\n };\n\n AppleLoginUtil.fetchAndUpdateCredentialState(\n userData.userId,\n ({ result, error: error2 }: { result: number; error: any }) => {\n if (error || result !== LoginState.AUTHORIZED) {\n onLoginFinish({ error: error2 });\n } else {\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user: loginUser, error: error3 }) => {\n onLoginFinish({ user: loginUser, error: error3 });\n }\n );\n }\n }\n );\n }\n } else if (type === LoginType.LoginTypeWeChat) {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({\n nickname,\n headimgurl,\n openid,\n unionid,\n error,\n }: {\n nickname: string;\n headimgurl: string;\n openid: string;\n unionid: string;\n error: any;\n }) => {\n if (error) {\n onLoginFinish({ error });\n } else {\n let userData = {\n nickname: nickname,\n headimgurl: headimgurl,\n authData: {\n openid: openid,\n unionid: unionid,\n access_token: openid,\n expires_in: 99999999,\n loginType: 'wechat',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user, error: error2 }) => {\n onLoginFinish({ user, error: error2 });\n }\n );\n }\n }\n );\n } else if (type === LoginType.LoginTypeVisitor) {\n const uniqueId = getUniqueIdSync();\n console.log(uniqueId);\n let userData = {\n nickname: i18n.t('游客'),\n authData: {\n openid: uniqueId,\n access_token: uniqueId,\n expires_in: 99999999,\n loginType: 'visitor',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(userData.authData, userData, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n } else {\n onLoginFinish({ error: i18n.t('未知登录类型,不应该走到这') });\n }\n },\n\n logOut: (callback: Function) => {\n console.log('onLogout');\n AV.User.logOut();\n CURRENT_USER = null;\n callback && callback();\n Notification.postNotification('onLogout');\n },\n\n isLogin: () => {\n return LoginManager.currentUser() != null;\n },\n\n isVisitor: () => {\n return (\n LoginManager.isLogin() &&\n LoginManager.currentUser()?.type === LoginType.LoginTypeVisitor\n );\n },\n\n currentUser: () => {\n // console.log('current user is ', CURRENT_USER);\n return CURRENT_USER;\n },\n\n batchUpdateUser: async (\n keys: string[],\n values: string[],\n callback: Function\n ) => {\n console.log('Batch Update User Begin: ' + keys + ' ' + values);\n const user = await AV.User.currentAsync();\n if (!user) {\n return;\n }\n const oldValues = [];\n for (let i = 0; i < keys.length; i++) {\n oldValues.push(user.get(keys[i]));\n user.set(keys[i], values[i]);\n }\n try {\n const newUser = await user.save();\n CURRENT_USER = AVUserToLocalUser(newUser);\n console.log('Batch Update User End', user);\n callback && callback();\n } catch (e) {\n console.error(e);\n for (let i = 0; i < keys.length; i++) {\n user.set(keys[i], oldValues[i]);\n }\n callback && callback(e);\n }\n },\n\n updateUser: (key: string, value: string, callback: Function) => {\n LoginManager.batchUpdateUser([key], [value], callback);\n },\n\n deleteUser: async (callback: Function) => {\n try {\n if (!CURRENT_USER) {\n return;\n }\n if (CURRENT_USER.type === LoginType.LoginTypeApple) {\n await AppleLoginUtil.requestDeleteAccount();\n }\n const user = await AV.User.currentAsync();\n console.log('get user success');\n await user.destroy();\n console.log('delete user success');\n callback();\n } catch (error) {\n console.error(error);\n callback(error);\n }\n },\n\n lastLoginType: () => {\n return PrefData.getValue(BuildInPrefs.LastLoginType);\n },\n\n fetchWeChatAvatar: (callback: Function) => {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n};\n\nexport default LoginManager;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventEmitter","require","eventEmitter","ListenerToEvent","Notification","exports","addListener","event","callback","key","toString","on","addListenerOnce","once","removeListener","removeAllListeners","keys","Object","postNotification","args","emit"],"sources":["Notification.ts"],"sourcesContent":["const EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\ninterface ListenerType {\n [key: string]: string;\n}\n\nconst ListenerToEvent: ListenerType = {};\n\nexport const Notification = {\n addListener: (event: string, callback: Function) => {\n const key = callback.toString();\n if (!ListenerToEvent[key]) {\n eventEmitter.on(event, callback);\n ListenerToEvent[key] = event;\n }\n return callback;\n },\n\n addListenerOnce: (event: string, callback: Function) => {\n eventEmitter.once(event, callback);\n },\n\n removeListener: (callback: Function) => {\n const key = callback.toString();\n const event = ListenerToEvent[key];\n delete ListenerToEvent[key];\n eventEmitter.removeListener(event, callback);\n },\n\n removeAllListeners: (event: string) => {\n const keys = Object.keys(ListenerToEvent);\n for (const key of keys) {\n if (ListenerToEvent[key] === event) {\n delete ListenerToEvent[key];\n }\n }\n eventEmitter.removeAllListeners(event);\n },\n\n postNotification: (event: string, args
|
|
1
|
+
{"version":3,"names":["EventEmitter","require","eventEmitter","ListenerToEvent","Notification","exports","addListener","event","callback","key","toString","on","addListenerOnce","once","removeListener","removeAllListeners","keys","Object","postNotification","args","emit"],"sources":["Notification.ts"],"sourcesContent":["const EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\ninterface ListenerType {\n [key: string]: string;\n}\n\nconst ListenerToEvent: ListenerType = {};\n\nexport const Notification = {\n addListener: (event: string, callback: Function) => {\n const key = callback.toString();\n if (!ListenerToEvent[key]) {\n eventEmitter.on(event, callback);\n ListenerToEvent[key] = event;\n }\n return callback;\n },\n\n addListenerOnce: (event: string, callback: Function) => {\n eventEmitter.once(event, callback);\n },\n\n removeListener: (callback: Function) => {\n const key = callback.toString();\n const event = ListenerToEvent[key];\n delete ListenerToEvent[key];\n eventEmitter.removeListener(event, callback);\n },\n\n removeAllListeners: (event: string) => {\n const keys = Object.keys(ListenerToEvent);\n for (const key of keys) {\n if (ListenerToEvent[key] === event) {\n delete ListenerToEvent[key];\n }\n }\n eventEmitter.removeAllListeners(event);\n },\n\n postNotification: (event: string, args?: object) => {\n eventEmitter.emit(event, args);\n },\n};\n"],"mappings":";;;;;;AAAA,MAAMA,YAAY,GAAGC,OAAO,CAAC,QAAQ,CAAC,CAACD,YAAY;AACnD,MAAME,YAAY,GAAG,IAAIF,YAAY,CAAC,CAAC;AAMvC,MAAMG,eAA6B,GAAG,CAAC,CAAC;AAEjC,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,WAAW,EAAEA,CAACC,KAAa,EAAEC,QAAkB,KAAK;IAClD,MAAMC,GAAG,GAAGD,QAAQ,CAACE,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAACP,eAAe,CAACM,GAAG,CAAC,EAAE;MACzBP,YAAY,CAACS,EAAE,CAACJ,KAAK,EAAEC,QAAQ,CAAC;MAChCL,eAAe,CAACM,GAAG,CAAC,GAAGF,KAAK;IAC9B;IACA,OAAOC,QAAQ;EACjB,CAAC;EAEDI,eAAe,EAAEA,CAACL,KAAa,EAAEC,QAAkB,KAAK;IACtDN,YAAY,CAACW,IAAI,CAACN,KAAK,EAAEC,QAAQ,CAAC;EACpC,CAAC;EAEDM,cAAc,EAAGN,QAAkB,IAAK;IACtC,MAAMC,GAAG,GAAGD,QAAQ,CAACE,QAAQ,CAAC,CAAC;IAC/B,MAAMH,KAAK,GAAGJ,eAAe,CAACM,GAAG,CAAC;IAClC,OAAON,eAAe,CAACM,GAAG,CAAC;IAC3BP,YAAY,CAACY,cAAc,CAACP,KAAK,EAAEC,QAAQ,CAAC;EAC9C,CAAC;EAEDO,kBAAkB,EAAGR,KAAa,IAAK;IACrC,MAAMS,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACb,eAAe,CAAC;IACzC,KAAK,MAAMM,GAAG,IAAIO,IAAI,EAAE;MACtB,IAAIb,eAAe,CAACM,GAAG,CAAC,KAAKF,KAAK,EAAE;QAClC,OAAOJ,eAAe,CAACM,GAAG,CAAC;MAC7B;IACF;IACAP,YAAY,CAACa,kBAAkB,CAACR,KAAK,CAAC;EACxC,CAAC;EAEDW,gBAAgB,EAAEA,CAACX,KAAa,EAAEY,IAAa,KAAK;IAClDjB,YAAY,CAACkB,IAAI,CAACb,KAAK,EAAEY,IAAI,CAAC;EAChC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LoginState","exports","LoginType"],"sources":["constant.ts"],"sourcesContent":["import { User } from 'leancloud-storage';\n\nexport interface UserType {\n nickname: string;\n email: string;\n headimgurl: string;\n type: number;\n AVUser: User;\n}\n\nexport enum LoginState {\n NOTLOGIN,\n AUTHORIZED,\n}\n\nexport enum LoginType {\n LoginTypeApple,\n LoginTypeWeChat,\n LoginTypeVisitor,\n}\n"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["LoginState","exports","LoginType"],"sources":["constant.ts"],"sourcesContent":["import { User } from 'leancloud-storage';\n\nexport interface UserType {\n nickname: string;\n email: string;\n headimgurl: string;\n type: number;\n isNew?: boolean;\n AVUser: User;\n}\n\nexport interface LoginAuthDataType {\n openid: string;\n unionid?: string;\n access_token: string | null;\n expires_in: number;\n loginType: string;\n}\n\nexport interface LoginUserDataType {\n userId?: string;\n nickname?: string;\n headimgurl?: string;\n email?: string | null;\n authData: LoginAuthDataType;\n}\n\nexport enum LoginState {\n NOTLOGIN,\n AUTHORIZED,\n}\n\nexport enum LoginType {\n LoginTypeApple,\n LoginTypeWeChat,\n LoginTypeVisitor,\n}\n"],"mappings":";;;;;;IA2BYA,UAAU,GAAAC,OAAA,CAAAD,UAAA,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAAA,IAKVE,SAAS,GAAAD,OAAA,CAAAC,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -18,6 +18,18 @@ Object.keys(_AppleLoginUtil).forEach(function (key) {
|
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
});
|
|
21
|
+
var _LoginManager = require("./LoginManager");
|
|
22
|
+
Object.keys(_LoginManager).forEach(function (key) {
|
|
23
|
+
if (key === "default" || key === "__esModule") return;
|
|
24
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
25
|
+
if (key in exports && exports[key] === _LoginManager[key]) return;
|
|
26
|
+
Object.defineProperty(exports, key, {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function () {
|
|
29
|
+
return _LoginManager[key];
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
21
33
|
var _Notification = require("./Notification");
|
|
22
34
|
Object.keys(_Notification).forEach(function (key) {
|
|
23
35
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_AppleLoginUtil","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Notification","_PrefData","_ReportUtil","_SentryManager","_SyncPrefData","_WeChatLoginUtil","_constant","_i18n","ReactNativeToolkit","NativeModules","_default","default"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n\ntype ReactNativeToolkitType = {\n multiply(a: number, b: number): Promise<number>;\n};\n\nconst { ReactNativeToolkit } = NativeModules;\n\nexport default ReactNativeToolkit as ReactNativeToolkitType;\nexport * from './AppleLoginUtil';\nexport * from './Notification';\nexport * from './PrefData';\nexport * from './ReportUtil';\nexport * from './SentryManager';\nexport * from './SyncPrefData';\nexport * from './WeChatLoginUtil';\nexport * from './constant';\nexport * from './i18n';\n"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AASA,IAAAC,eAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,eAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,eAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,eAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,aAAA,GAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,aAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,aAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,aAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_AppleLoginUtil","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_LoginManager","_Notification","_PrefData","_ReportUtil","_SentryManager","_SyncPrefData","_WeChatLoginUtil","_constant","_i18n","ReactNativeToolkit","NativeModules","_default","default"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n\ntype ReactNativeToolkitType = {\n multiply(a: number, b: number): Promise<number>;\n};\n\nconst { ReactNativeToolkit } = NativeModules;\n\nexport default ReactNativeToolkit as ReactNativeToolkitType;\nexport * from './AppleLoginUtil';\nexport * from './LoginManager';\nexport * from './Notification';\nexport * from './PrefData';\nexport * from './ReportUtil';\nexport * from './SentryManager';\nexport * from './SyncPrefData';\nexport * from './WeChatLoginUtil';\nexport * from './constant';\nexport * from './i18n';\n"],"mappings":"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"}
|