com.taptap.sdk.login 4.5.1 → 4.5.3
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/Mobile/Editor/NativeDependencies.xml +3 -4
- package/Runtime/Public/TapTapLogin.cs +1 -1
- package/Standalone/Runtime/Internal2/TapLoginStandaloneImpl.cs +34 -13
- package/Standalone/Runtime/Public/IComplianceProvider.cs +1 -1
- package/Standalone/Runtime/Public/TapTapLoginStandalone.cs +13 -0
- package/link.xml.meta +1 -1
- package/package.json +2 -2
|
@@ -4,14 +4,13 @@
|
|
|
4
4
|
<repositories>
|
|
5
5
|
<repository>https://repo.maven.apache.org/maven2</repository>
|
|
6
6
|
</repositories>
|
|
7
|
-
<androidPackage spec="com.taptap.sdk:tap-login-unity:4.5.
|
|
7
|
+
<androidPackage spec="com.taptap.sdk:tap-login-unity:4.5.3"/>
|
|
8
8
|
</androidPackages>
|
|
9
9
|
<iosPods>
|
|
10
10
|
<sources>
|
|
11
11
|
<source>https://github.com/CocoaPods/Specs.git</source>
|
|
12
12
|
</sources>
|
|
13
|
-
<iosPod name="
|
|
14
|
-
<iosPod name="
|
|
15
|
-
<iosPod name="TapTapGidSDK" version="~> 4.5.1" bitcodeEnabled="false" addToAllTargets="false"/>
|
|
13
|
+
<iosPod name="TapTapLoginSDK" version="~> 4.5.3" bitcodeEnabled="false" addToAllTargets="false"/>
|
|
14
|
+
<iosPod name="TapTapGidSDK" version="~> 4.5.3" bitcodeEnabled="false" addToAllTargets="false"/>
|
|
16
15
|
</iosPods>
|
|
17
16
|
</dependencies>
|
|
@@ -7,7 +7,7 @@ namespace TapSDK.Login
|
|
|
7
7
|
public class TapTapLogin
|
|
8
8
|
{
|
|
9
9
|
|
|
10
|
-
public static readonly string Version = "4.5.
|
|
10
|
+
public static readonly string Version = "4.5.3";
|
|
11
11
|
|
|
12
12
|
public const string TAP_LOGIN_SCOPE_BASIC_INFO = "basic_info";
|
|
13
13
|
public const string TAP_LOGIN_SCOPE_PUBLIC_PROFILE = "public_profile";
|
|
@@ -16,6 +16,9 @@ namespace TapSDK.Login.Internal
|
|
|
16
16
|
{
|
|
17
17
|
private static TapLoginStandaloneImpl instance;
|
|
18
18
|
|
|
19
|
+
// 当前是否正在登录中
|
|
20
|
+
private volatile bool IsLogging = false;
|
|
21
|
+
|
|
19
22
|
private TapLoginStandaloneImpl()
|
|
20
23
|
{
|
|
21
24
|
|
|
@@ -43,6 +46,13 @@ namespace TapSDK.Login.Internal
|
|
|
43
46
|
|
|
44
47
|
public Task<TapTapAccount> Login(string[] scopes)
|
|
45
48
|
{
|
|
49
|
+
// 正在登录时,返回登录异常
|
|
50
|
+
if(IsLogging){
|
|
51
|
+
var defaultTcs = new TaskCompletionSource<TapTapAccount>();
|
|
52
|
+
defaultTcs.TrySetException(new TapException((int) TapErrorCode.ERROR_CODE_LOGOUT_INVALID_LOGIN_STATE, "Currently logging in"));
|
|
53
|
+
return defaultTcs.Task;
|
|
54
|
+
}
|
|
55
|
+
IsLogging = true;
|
|
46
56
|
string sessionId = Guid.NewGuid().ToString();
|
|
47
57
|
TapLoginTracker.Instance.TrackStart("loginWithScopes", sessionId);
|
|
48
58
|
|
|
@@ -52,7 +62,7 @@ namespace TapSDK.Login.Internal
|
|
|
52
62
|
}
|
|
53
63
|
IComplianceProvider provider = BridgeUtils.CreateBridgeImplementation(typeof(IComplianceProvider),
|
|
54
64
|
"TapSDK.Compliance") as IComplianceProvider;
|
|
55
|
-
|
|
65
|
+
string complianceScope = provider?.GetAgeRangeScope(TapTapSdk.CurrentRegion is RegionCN _);
|
|
56
66
|
if (complianceScope != null)
|
|
57
67
|
{
|
|
58
68
|
scopes = scopes.Append(complianceScope).ToArray();
|
|
@@ -64,6 +74,7 @@ namespace TapSDK.Login.Internal
|
|
|
64
74
|
OnAuth = async (tokenData, loginType) => {
|
|
65
75
|
if (tokenData == null) {
|
|
66
76
|
TapLoginTracker.Instance.TrackFailure("loginWithScopes", sessionId, loginType, (int) TapErrorCode.ERROR_CODE_UNDEFINED, "UnKnow Error");
|
|
77
|
+
IsLogging = false;
|
|
67
78
|
tcs.TrySetException(new TapException((int) TapErrorCode.ERROR_CODE_UNDEFINED, "UnKnow Error"));
|
|
68
79
|
} else {
|
|
69
80
|
// 将 TokenData 转化为 AccessToken
|
|
@@ -74,28 +85,38 @@ namespace TapSDK.Login.Internal
|
|
|
74
85
|
macAlgorithm = tokenData.MacAlgorithm,
|
|
75
86
|
scopeSet = tokenData.Scopes
|
|
76
87
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
+
try{
|
|
89
|
+
ProfileData profileData = await LoginService.GetProfile(TapTapSdk.ClientId, refreshToken);
|
|
90
|
+
if (profileData != null)
|
|
91
|
+
{
|
|
92
|
+
TapLoginTracker.Instance.TrackSuccess("loginWithScopes", sessionId, loginType);
|
|
93
|
+
AccountManager.Instance.Account = new TapTapAccount(
|
|
94
|
+
refreshToken, profileData.OpenId, profileData.UnionId, profileData.Name, profileData.Avatar,
|
|
95
|
+
profileData.Email);
|
|
96
|
+
IsLogging = false;
|
|
97
|
+
tcs.TrySetResult(AccountManager.Instance.Account);
|
|
98
|
+
}
|
|
99
|
+
else
|
|
100
|
+
{
|
|
101
|
+
TapLoginTracker.Instance.TrackFailure("loginWithScopes", sessionId, loginType, (int) TapErrorCode.ERROR_CODE_UNDEFINED, "UnKnow Error");
|
|
102
|
+
IsLogging = false;
|
|
103
|
+
tcs.TrySetException(new TapException((int) TapErrorCode.ERROR_CODE_UNDEFINED, "UnKnow Error"));
|
|
104
|
+
}
|
|
105
|
+
} catch(Exception e) {
|
|
88
106
|
TapLoginTracker.Instance.TrackFailure("loginWithScopes", sessionId, loginType, (int) TapErrorCode.ERROR_CODE_UNDEFINED, "UnKnow Error");
|
|
89
|
-
|
|
107
|
+
IsLogging = false;
|
|
108
|
+
tcs.TrySetException(new TapException((int) TapErrorCode.ERROR_CODE_UNDEFINED, "UnKnow Error " + e.Message));
|
|
90
109
|
}
|
|
91
110
|
}
|
|
92
111
|
},
|
|
93
112
|
OnError = (e, loginType) => {
|
|
94
113
|
TapLoginTracker.Instance.TrackFailure("loginWithScopes", sessionId, loginType, e.Code, e.Message);
|
|
114
|
+
IsLogging = false;
|
|
95
115
|
tcs.TrySetException(e);
|
|
96
116
|
},
|
|
97
117
|
OnClose = () => {
|
|
98
118
|
TapLoginTracker.Instance.TrackCancel("loginWithScopes", sessionId);
|
|
119
|
+
IsLogging = false;
|
|
99
120
|
tcs.TrySetCanceled();
|
|
100
121
|
}
|
|
101
122
|
};
|
|
@@ -16,16 +16,29 @@ namespace TapSDK.Login.Standalone
|
|
|
16
16
|
|
|
17
17
|
public Task<TapTapAccount> Login(string[] scopes)
|
|
18
18
|
{
|
|
19
|
+
if(!TapCoreStandalone.CheckInitState()){
|
|
20
|
+
var defaultTcs = new TaskCompletionSource<TapTapAccount>();
|
|
21
|
+
defaultTcs.TrySetResult(null);
|
|
22
|
+
return defaultTcs.Task;
|
|
23
|
+
}
|
|
19
24
|
return TapLoginStandaloneImpl.Instance.Login(scopes);
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
public void Logout()
|
|
23
28
|
{
|
|
29
|
+
if(!TapCoreStandalone.CheckInitState()){
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
24
32
|
TapLoginStandaloneImpl.Instance.Logout();
|
|
25
33
|
}
|
|
26
34
|
|
|
27
35
|
public Task<TapTapAccount> GetCurrentAccount()
|
|
28
36
|
{
|
|
37
|
+
if(!TapCoreStandalone.CheckInitState()){
|
|
38
|
+
var defaultTcs = new TaskCompletionSource<TapTapAccount>();
|
|
39
|
+
defaultTcs.TrySetResult(null);
|
|
40
|
+
return defaultTcs.Task;
|
|
41
|
+
}
|
|
29
42
|
return TapLoginStandaloneImpl.Instance.GetCurrentAccount();
|
|
30
43
|
}
|
|
31
44
|
}
|
package/link.xml.meta
CHANGED
package/package.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"name": "com.taptap.sdk.login",
|
|
3
3
|
"displayName": "TapTapSDK Login",
|
|
4
4
|
"description": "TapTapSDK Login",
|
|
5
|
-
"version": "4.5.
|
|
5
|
+
"version": "4.5.3",
|
|
6
6
|
"unity": "2019.4",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"com.taptap.sdk.core": "4.5.
|
|
9
|
+
"com.taptap.sdk.core": "4.5.3"
|
|
10
10
|
}
|
|
11
11
|
}
|