@norcy/react-native-toolkit 0.3.21 → 0.3.23
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/AppleLoginUtil.js +33 -85
- package/lib/commonjs/AppleLoginUtil.js.map +1 -1
- package/lib/commonjs/HuaweiLoginUtil.js +10 -22
- package/lib/commonjs/HuaweiLoginUtil.js.map +1 -1
- package/lib/commonjs/LoginManager.js +104 -114
- package/lib/commonjs/LoginManager.js.map +1 -1
- package/lib/commonjs/WeChatLoginUtil.js +32 -56
- package/lib/commonjs/WeChatLoginUtil.js.map +1 -1
- package/lib/commonjs/constant.js +1 -6
- package/lib/commonjs/constant.js.map +1 -1
- package/lib/module/AppleLoginUtil.js +33 -85
- package/lib/module/AppleLoginUtil.js.map +1 -1
- package/lib/module/HuaweiLoginUtil.js +10 -22
- package/lib/module/HuaweiLoginUtil.js.map +1 -1
- package/lib/module/LoginManager.js +105 -115
- package/lib/module/LoginManager.js.map +1 -1
- package/lib/module/WeChatLoginUtil.js +32 -56
- package/lib/module/WeChatLoginUtil.js.map +1 -1
- package/lib/module/constant.js +0 -5
- package/lib/module/constant.js.map +1 -1
- package/lib/typescript/AppleLoginUtil.d.ts +1 -15
- package/lib/typescript/AppleLoginUtil.d.ts.map +1 -1
- package/lib/typescript/HuaweiLoginUtil.d.ts +2 -7
- package/lib/typescript/HuaweiLoginUtil.d.ts.map +1 -1
- package/lib/typescript/LoginManager.d.ts +1 -1
- package/lib/typescript/LoginManager.d.ts.map +1 -1
- package/lib/typescript/WeChatLoginUtil.d.ts +3 -2
- package/lib/typescript/WeChatLoginUtil.d.ts.map +1 -1
- package/lib/typescript/constant.d.ts +5 -3
- package/lib/typescript/constant.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/AppleLoginUtil.ts +29 -50
- package/src/HuaweiLoginUtil.ts +11 -24
- package/src/LoginManager.ts +82 -125
- package/src/WeChatLoginUtil.ts +54 -71
- package/src/constant.ts +5 -3
|
@@ -24,55 +24,30 @@ const createSignature = (WeiXinId, nonceStr, sdkTicket, timestamp) => {
|
|
|
24
24
|
console.log('wx scan signature', origin, ret);
|
|
25
25
|
return ret;
|
|
26
26
|
};
|
|
27
|
-
const getUserInfo = (WeiXinId, WeiXinSecret, code
|
|
28
|
-
|
|
29
|
-
fetch(accessTokenUrl).
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
headimgurl: json.headimgurl,
|
|
41
|
-
openid: json.openid,
|
|
42
|
-
unionid: json.unionid
|
|
43
|
-
});
|
|
44
|
-
}).catch(e => {
|
|
45
|
-
console.warn('wechat get user info fail ', e);
|
|
46
|
-
callback({
|
|
47
|
-
error: e
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
}).catch(e => {
|
|
51
|
-
console.warn('wechat get access code fail ', e);
|
|
52
|
-
callback({
|
|
53
|
-
error: e
|
|
54
|
-
});
|
|
55
|
-
});
|
|
27
|
+
const getUserInfo = async (WeiXinId, WeiXinSecret, code) => {
|
|
28
|
+
const accessTokenUrl = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' + WeiXinId + '&secret=' + WeiXinSecret + '&code=' + code + '&grant_type=authorization_code';
|
|
29
|
+
const res = await (await fetch(accessTokenUrl)).json();
|
|
30
|
+
console.log('wechat get access code success: ', res.access_token);
|
|
31
|
+
const userInfoUrl = 'https://api.weixin.qq.com/sns/userinfo?access_token=' + res.access_token + '&openid=' + res.openid;
|
|
32
|
+
const json = await (await fetch(userInfoUrl)).json();
|
|
33
|
+
console.log('wechat get user info success: ', json);
|
|
34
|
+
return {
|
|
35
|
+
nickname: json.nickname,
|
|
36
|
+
headimgurl: json.headimgurl,
|
|
37
|
+
openid: json.openid,
|
|
38
|
+
unionid: json.unionid
|
|
39
|
+
};
|
|
56
40
|
};
|
|
57
41
|
export const WeChatLoginUtil = {
|
|
58
|
-
doLogin: (WeiXinId, WeiXinSecret
|
|
59
|
-
WeChat.sendAuthRequest('snsapi_userinfo')
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
getUserInfo(WeiXinId, WeiXinSecret, ret?.code, callback);
|
|
68
|
-
}).catch(e => {
|
|
69
|
-
console.warn('wechat auth fail ', e);
|
|
70
|
-
callback({
|
|
71
|
-
error: e
|
|
72
|
-
});
|
|
73
|
-
});
|
|
42
|
+
doLogin: async (WeiXinId, WeiXinSecret) => {
|
|
43
|
+
const ret = await WeChat.sendAuthRequest('snsapi_userinfo');
|
|
44
|
+
console.log('wechat auth success ', ret);
|
|
45
|
+
if (!ret?.code) {
|
|
46
|
+
throw new Error('Auth code 获取失败');
|
|
47
|
+
}
|
|
48
|
+
return getUserInfo(WeiXinId, WeiXinSecret, ret.code);
|
|
74
49
|
},
|
|
75
|
-
doLoginByScan: async (WeiXinId, WeiXinSecret, onQRGet
|
|
50
|
+
doLoginByScan: async (WeiXinId, WeiXinSecret, onQRGet) => {
|
|
76
51
|
const accessToken = await getAccessToken(WeiXinId, WeiXinSecret);
|
|
77
52
|
const ticket = await getSDKTicket(accessToken);
|
|
78
53
|
const nonceStr = Tool.generateObjectId();
|
|
@@ -80,17 +55,18 @@ export const WeChatLoginUtil = {
|
|
|
80
55
|
const signature = createSignature(WeiXinId, nonceStr, ticket, timestamp);
|
|
81
56
|
const qrcodeEmitter = new NativeEventEmitter(NativeModules.WeChat);
|
|
82
57
|
const subscription = qrcodeEmitter.addListener('onAuthGotQrcode', res => onQRGet(res.qrcode));
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
58
|
+
const authCode = await new Promise((resolve, reject) => {
|
|
59
|
+
NativeModules.WeChat.authByScan(WeiXinId, nonceStr, timestamp, 'snsapi_userinfo', signature, '', ret => {
|
|
60
|
+
console.log('scan result', ret);
|
|
61
|
+
subscription.remove();
|
|
62
|
+
if (!ret?.authCode) {
|
|
63
|
+
reject(new Error('Auth code 获取失败'));
|
|
64
|
+
} else {
|
|
65
|
+
resolve(ret.authCode);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
93
68
|
});
|
|
69
|
+
return getUserInfo(WeiXinId, WeiXinSecret, authCode);
|
|
94
70
|
}
|
|
95
71
|
};
|
|
96
72
|
//# sourceMappingURL=WeChatLoginUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sha1","NativeEventEmitter","NativeModules","WeChat","Tool","getAccessToken","WeiXinId","WeiXinSecret","url","response","fetch","res","json","access_token","getSDKTicket","accessToken","ticket","createSignature","nonceStr","sdkTicket","timestamp","origin","ret","console","log","getUserInfo","code","
|
|
1
|
+
{"version":3,"names":["sha1","NativeEventEmitter","NativeModules","WeChat","Tool","getAccessToken","WeiXinId","WeiXinSecret","url","response","fetch","res","json","access_token","getSDKTicket","accessToken","ticket","createSignature","nonceStr","sdkTicket","timestamp","origin","ret","console","log","getUserInfo","code","accessTokenUrl","userInfoUrl","openid","nickname","headimgurl","unionid","WeChatLoginUtil","doLogin","sendAuthRequest","Error","doLoginByScan","onQRGet","generateObjectId","String","Math","round","Date","now","signature","qrcodeEmitter","subscription","addListener","qrcode","authCode","Promise","resolve","reject","authByScan","remove"],"sourceRoot":"../../src","sources":["WeChatLoginUtil.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/constant.js
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
export let LoginState = /*#__PURE__*/function (LoginState) {
|
|
4
|
-
LoginState[LoginState["NOTLOGIN"] = 0] = "NOTLOGIN";
|
|
5
|
-
LoginState[LoginState["AUTHORIZED"] = 1] = "AUTHORIZED";
|
|
6
|
-
return LoginState;
|
|
7
|
-
}({});
|
|
8
3
|
export let LoginType = /*#__PURE__*/function (LoginType) {
|
|
9
4
|
LoginType[LoginType["LoginTypeApple"] = 0] = "LoginTypeApple";
|
|
10
5
|
LoginType[LoginType["LoginTypeWeChat"] = 1] = "LoginTypeWeChat";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["LoginType"],"sourceRoot":"../../src","sources":["constant.ts"],"mappings":";;AAmCA,WAAYA,SAAS,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
|
|
@@ -1,23 +1,9 @@
|
|
|
1
1
|
export declare const AppleLoginUtil: {
|
|
2
|
-
fetchAndUpdateCredentialState: (user: string
|
|
2
|
+
fetchAndUpdateCredentialState: (user: string) => Promise<void>;
|
|
3
3
|
requestAppleUserForLogin: () => Promise<{
|
|
4
|
-
error: string;
|
|
5
|
-
user?: undefined;
|
|
6
|
-
email?: undefined;
|
|
7
|
-
identityToken?: undefined;
|
|
8
|
-
code?: undefined;
|
|
9
|
-
} | {
|
|
10
4
|
user: string;
|
|
11
5
|
email: string | null;
|
|
12
6
|
identityToken: string | null;
|
|
13
|
-
error?: undefined;
|
|
14
|
-
code?: undefined;
|
|
15
|
-
} | {
|
|
16
|
-
error: string;
|
|
17
|
-
code: any;
|
|
18
|
-
user?: undefined;
|
|
19
|
-
email?: undefined;
|
|
20
|
-
identityToken?: undefined;
|
|
21
7
|
}>;
|
|
22
8
|
requestAppleUserForLogout: () => Promise<{
|
|
23
9
|
authorizationCode: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppleLoginUtil.d.ts","sourceRoot":"","sources":["../../src/AppleLoginUtil.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AppleLoginUtil.d.ts","sourceRoot":"","sources":["../../src/AppleLoginUtil.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc;0CAQmB,MAAM,KAAG,QAAQ,IAAI,CAAC;;cAiB1D,MAAM;eACL,MAAM,GAAG,IAAI;uBACL,MAAM,GAAG,IAAI;;;;;;CAmD/B,CAAC"}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
+
import { ThirdPartyUserInfo } from './constant';
|
|
1
2
|
export declare const HuaweiLoginUtil: {
|
|
2
|
-
doLogin: (
|
|
3
|
-
nickname?: string;
|
|
4
|
-
headimgurl?: string;
|
|
5
|
-
openid?: string;
|
|
6
|
-
unionid?: string;
|
|
7
|
-
error?: any;
|
|
8
|
-
}) => void) => Promise<void>;
|
|
3
|
+
doLogin: () => Promise<ThirdPartyUserInfo>;
|
|
9
4
|
};
|
|
10
5
|
//# sourceMappingURL=HuaweiLoginUtil.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HuaweiLoginUtil.d.ts","sourceRoot":"","sources":["../../src/HuaweiLoginUtil.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HuaweiLoginUtil.d.ts","sourceRoot":"","sources":["../../src/HuaweiLoginUtil.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAOhD,eAAO,MAAM,eAAe;mBACP,QAAQ,kBAAkB,CAAC;CAe/C,CAAC"}
|
|
@@ -23,7 +23,7 @@ export declare const LoginManager: {
|
|
|
23
23
|
deleteUser: (callback: (error?: unknown) => void) => Promise<void>;
|
|
24
24
|
lastLoginType: () => any;
|
|
25
25
|
isRegisterInThisDevice: () => any;
|
|
26
|
-
fetchWeChatAvatar: (callback: FetchImageFunctionType) => void
|
|
26
|
+
fetchWeChatAvatar: (callback: FetchImageFunctionType) => Promise<void>;
|
|
27
27
|
getRegisterDays: () => number;
|
|
28
28
|
};
|
|
29
29
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginManager.d.ts","sourceRoot":"","sources":["../../src/LoginManager.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"LoginManager.d.ts","sourceRoot":"","sources":["../../src/LoginManager.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,SAAS,EAET,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,KAAK,sBAAsB,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAC/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAwCF,eAAO,MAAM,YAAY;;kBAcf,SAAS,sEAEE,MAAM,IAAI,6BACD,MAAM,KAAK,IAAI;wBAoGvB,MAAM,IAAI;;;;4BAuBtB,MAAM,EAAE,UACN,GAAG,EAAE,uBACO,OAAO,KAAK,IAAI;sBAc/B,MAAM,SACJ,GAAG,uBACU,OAAO,KAAK,IAAI;oCAKA,OAAO,KAAK,IAAI;;;kCAyBlB,sBAAsB;;CAwB3D,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { ThirdPartyUserInfo } from './constant';
|
|
1
2
|
export declare const WeChatLoginUtil: {
|
|
2
|
-
doLogin: (WeiXinId: string, WeiXinSecret: string
|
|
3
|
-
doLoginByScan: (WeiXinId: string, WeiXinSecret: string, onQRGet: (qrcode: string) => void
|
|
3
|
+
doLogin: (WeiXinId: string, WeiXinSecret: string) => Promise<ThirdPartyUserInfo>;
|
|
4
|
+
doLoginByScan: (WeiXinId: string, WeiXinSecret: string, onQRGet: (qrcode: string) => void) => Promise<ThirdPartyUserInfo>;
|
|
4
5
|
};
|
|
5
6
|
//# sourceMappingURL=WeChatLoginUtil.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeChatLoginUtil.d.ts","sourceRoot":"","sources":["../../src/WeChatLoginUtil.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WeChatLoginUtil.d.ts","sourceRoot":"","sources":["../../src/WeChatLoginUtil.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA4EhD,eAAO,MAAM,eAAe;wBAEd,MAAM,gBACF,MAAM,KACnB,QAAQ,kBAAkB,CAAC;8BAUlB,MAAM,gBACF,MAAM,oBACF,MAAM,KAAK,IAAI,KAChC,QAAQ,kBAAkB,CAAC;CAmC/B,CAAC"}
|
|
@@ -23,9 +23,11 @@ export interface LoginUserDataType {
|
|
|
23
23
|
email?: string | null;
|
|
24
24
|
authData: LoginAuthDataType;
|
|
25
25
|
}
|
|
26
|
-
export
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
export interface ThirdPartyUserInfo {
|
|
27
|
+
nickname: string;
|
|
28
|
+
headimgurl: string;
|
|
29
|
+
openid: string;
|
|
30
|
+
unionid: string;
|
|
29
31
|
}
|
|
30
32
|
export declare enum LoginType {
|
|
31
33
|
LoginTypeApple = 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,
|
|
1
|
+
{"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,SAAS;IACnB,cAAc,IAAA;IACd,eAAe,IAAA;IACf,gBAAgB,IAAA;IAChB,mBAAmB,IAAA;IACnB,eAAe,IAAA;CAChB"}
|
package/package.json
CHANGED
package/src/AppleLoginUtil.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { appleAuth } from '@invertase/react-native-apple-authentication';
|
|
2
2
|
import { getBundleId } from 'react-native-device-info';
|
|
3
|
-
import { LoginState } from './constant';
|
|
4
3
|
|
|
5
4
|
const AV = require('leancloud-storage');
|
|
6
5
|
|
|
@@ -12,77 +11,57 @@ export const AppleLoginUtil = {
|
|
|
12
11
|
// });
|
|
13
12
|
// });
|
|
14
13
|
|
|
15
|
-
fetchAndUpdateCredentialState: async (user: string
|
|
14
|
+
fetchAndUpdateCredentialState: async (user: string): Promise<void> => {
|
|
16
15
|
console.log('User 正在登录鉴权:', user);
|
|
17
16
|
|
|
18
17
|
if (user === null) {
|
|
19
|
-
|
|
18
|
+
throw new Error('USER EMPTY');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const credentialState = await appleAuth.getCredentialStateForUser(user);
|
|
22
|
+
if (credentialState === appleAuth.State.AUTHORIZED) {
|
|
23
|
+
console.log('登录鉴权成功');
|
|
20
24
|
} else {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
console.log('登录鉴权成功');
|
|
24
|
-
callback({ result: LoginState.AUTHORIZED });
|
|
25
|
-
} else {
|
|
26
|
-
console.warn('登录鉴权失败');
|
|
27
|
-
callback(
|
|
28
|
-
{ result: LoginState.NOTLOGIN },
|
|
29
|
-
{ error: 'Authorized Failed' }
|
|
30
|
-
);
|
|
31
|
-
}
|
|
25
|
+
console.warn('登录鉴权失败');
|
|
26
|
+
throw new Error('Authorized Failed');
|
|
32
27
|
}
|
|
33
28
|
},
|
|
34
29
|
|
|
35
|
-
requestAppleUserForLogin: async ()
|
|
30
|
+
requestAppleUserForLogin: async (): Promise<{
|
|
31
|
+
user: string;
|
|
32
|
+
email: string | null;
|
|
33
|
+
identityToken: string | null;
|
|
34
|
+
}> => {
|
|
36
35
|
if (!appleAuth.isSupported) {
|
|
37
|
-
|
|
36
|
+
throw new Error('Apple Auth Not Supported');
|
|
38
37
|
}
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
requestedScopes: [appleAuth.Scope.EMAIL, appleAuth.Scope.FULL_NAME],
|
|
45
|
-
});
|
|
39
|
+
const appleAuthRequestResponse = await appleAuth.performRequest({
|
|
40
|
+
requestedOperation: appleAuth.Operation.LOGIN,
|
|
41
|
+
requestedScopes: [appleAuth.Scope.EMAIL, appleAuth.Scope.FULL_NAME],
|
|
42
|
+
});
|
|
46
43
|
|
|
47
|
-
|
|
44
|
+
console.log('appleAuthRequestResponse login', appleAuthRequestResponse);
|
|
48
45
|
|
|
49
|
-
|
|
46
|
+
const { user: newUser, email, identityToken } = appleAuthRequestResponse;
|
|
50
47
|
|
|
51
|
-
|
|
48
|
+
console.log(`Apple Authentication Completed, ${newUser}, ${email}`);
|
|
52
49
|
|
|
53
|
-
|
|
54
|
-
} catch (error: any) {
|
|
55
|
-
if (error.code === appleAuth.Error.CANCELED) {
|
|
56
|
-
// console.warn('User canceled Apple Sign in.');
|
|
57
|
-
return { error: 'User Cancel Login', code: error.code };
|
|
58
|
-
} else {
|
|
59
|
-
// console.warn('登录鉴权出错: ', error);
|
|
60
|
-
return { error: 'Login Request Fail', code: error.code };
|
|
61
|
-
}
|
|
62
|
-
}
|
|
50
|
+
return { user: newUser, email, identityToken };
|
|
63
51
|
},
|
|
64
52
|
|
|
65
53
|
requestAppleUserForLogout: async () => {
|
|
66
54
|
if (!appleAuth.isSupported) {
|
|
67
|
-
throw
|
|
55
|
+
throw new Error('Apple Auth Not Supported');
|
|
68
56
|
}
|
|
69
57
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
requestedOperation: appleAuth.Operation.LOGOUT,
|
|
74
|
-
});
|
|
58
|
+
const appleAuthRequestResponse = await appleAuth.performRequest({
|
|
59
|
+
requestedOperation: appleAuth.Operation.LOGOUT,
|
|
60
|
+
});
|
|
75
61
|
|
|
76
|
-
|
|
62
|
+
console.log('appleAuthRequestResponse logout', appleAuthRequestResponse);
|
|
77
63
|
|
|
78
|
-
|
|
79
|
-
} catch (error: any) {
|
|
80
|
-
if (error.code === appleAuth.Error.CANCELED) {
|
|
81
|
-
throw { error: 'User Cancel Logout', code: error.code };
|
|
82
|
-
} else {
|
|
83
|
-
throw { error: 'Logout Request Fail', code: error.code };
|
|
84
|
-
}
|
|
85
|
-
}
|
|
64
|
+
return { authorizationCode: appleAuthRequestResponse.authorizationCode };
|
|
86
65
|
},
|
|
87
66
|
|
|
88
67
|
requestDeleteAccount: async () => {
|
package/src/HuaweiLoginUtil.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NativeModules, TurboModuleRegistry } from 'react-native';
|
|
2
|
+
import { ThirdPartyUserInfo } from './constant';
|
|
2
3
|
import { PlatformHelper } from './PlatformHelper';
|
|
3
4
|
|
|
4
5
|
const HuaweiLoginModule =
|
|
@@ -6,33 +7,19 @@ const HuaweiLoginModule =
|
|
|
6
7
|
TurboModuleRegistry.get<any>('HuaweiLoginModule');
|
|
7
8
|
|
|
8
9
|
export const HuaweiLoginUtil = {
|
|
9
|
-
doLogin: async (
|
|
10
|
-
callback: (result: {
|
|
11
|
-
nickname?: string;
|
|
12
|
-
headimgurl?: string;
|
|
13
|
-
openid?: string;
|
|
14
|
-
unionid?: string;
|
|
15
|
-
error?: any;
|
|
16
|
-
}) => void
|
|
17
|
-
) => {
|
|
10
|
+
doLogin: async (): Promise<ThirdPartyUserInfo> => {
|
|
18
11
|
if (PlatformHelper.isIOS()) {
|
|
19
|
-
|
|
20
|
-
return;
|
|
12
|
+
throw new Error('Huawei Login is not supported on iOS');
|
|
21
13
|
}
|
|
22
14
|
if (!HuaweiLoginModule || typeof HuaweiLoginModule.signIn !== 'function') {
|
|
23
|
-
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
try {
|
|
27
|
-
const result = await HuaweiLoginModule.signIn();
|
|
28
|
-
callback({
|
|
29
|
-
nickname: result.nickname,
|
|
30
|
-
headimgurl: result.headimgurl,
|
|
31
|
-
openid: result.openid,
|
|
32
|
-
unionid: result.unionid,
|
|
33
|
-
});
|
|
34
|
-
} catch (e) {
|
|
35
|
-
callback({ error: e });
|
|
15
|
+
throw new Error('HuaweiLoginModule not available');
|
|
36
16
|
}
|
|
17
|
+
const result = await HuaweiLoginModule.signIn();
|
|
18
|
+
return {
|
|
19
|
+
nickname: result.nickname,
|
|
20
|
+
headimgurl: result.headimgurl,
|
|
21
|
+
openid: result.openid,
|
|
22
|
+
unionid: result.unionid,
|
|
23
|
+
};
|
|
37
24
|
},
|
|
38
25
|
};
|