Skip to content

Commit 082a04a

Browse files
committed
Add new captcha error
1 parent a01e14c commit 082a04a

24 files changed

+471
-47
lines changed

Flat.xcodeproj/project.pbxproj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
617CBAD32EF40A50004D2BCB /* captcha.html in Resources */ = {isa = PBXBuildFile; fileRef = 617CBAD22EF40A50004D2BCB /* captcha.html */; };
1011
8A00853F2AC135100053366B /* SensetiveLogFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A00853E2AC135100053366B /* SensetiveLogFilter.swift */; };
1112
8A0085412AC135510053366B /* LogSensetiveTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A0085402AC135510053366B /* LogSensetiveTest.swift */; };
1213
8A0085422AC135560053366B /* SensetiveLogFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A00853E2AC135100053366B /* SensetiveLogFilter.swift */; };
@@ -375,6 +376,7 @@
375376
8AFB942E28B7550100B8795D /* CameraMicToggleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AFB942D28B7550100B8795D /* CameraMicToggleView.swift */; };
376377
8AFCCDDD276AD840008BD0FC /* AppleLoginRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AFCCDDC276AD840008BD0FC /* AppleLoginRequest.swift */; };
377378
9AE3AF17B16B9CA81A411696 /* Pods_Flat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B773F9587EAD9D58FD45B88 /* Pods_Flat.framework */; };
379+
DD7336DF893169B0E3BB52C2 /* CaptchaWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A7488707140887A0991F55A /* CaptchaWebViewController.swift */; };
378380
/* End PBXBuildFile section */
379381

380382
/* Begin PBXContainerItemProxy section */
@@ -403,6 +405,7 @@
403405

404406
/* Begin PBXFileReference section */
405407
2B773F9587EAD9D58FD45B88 /* Pods_Flat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Flat.framework; sourceTree = BUILT_PRODUCTS_DIR; };
408+
617CBAD22EF40A50004D2BCB /* captcha.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = captcha.html; sourceTree = "<group>"; };
406409
6EB5061DE7DACC73AD6C59FD /* Pods-Flat.flat_release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Flat.flat_release.xcconfig"; path = "Target Support Files/Pods-Flat/Pods-Flat.flat_release.xcconfig"; sourceTree = "<group>"; };
407410
7911FDD3A2AC2D6E513C8FF5 /* Pods-Flat.flint_debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Flat.flint_debug.xcconfig"; path = "Target Support Files/Pods-Flat/Pods-Flat.flint_debug.xcconfig"; sourceTree = "<group>"; };
408411
8A00853E2AC135100053366B /* SensetiveLogFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SensetiveLogFilter.swift; sourceTree = "<group>"; };
@@ -585,6 +588,7 @@
585588
8A7010A527777BB400D1C8B4 /* PopOverPresentationStyleAdaptor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PopOverPresentationStyleAdaptor.swift; sourceTree = "<group>"; };
586589
8A716F3527B9FFF800DB408F /* LoginViewController+Debug.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LoginViewController+Debug.swift"; sourceTree = "<group>"; };
587590
8A73309328C843C600404B2D /* UITableView+loadedAll.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITableView+loadedAll.swift"; sourceTree = "<group>"; };
591+
8A7488707140887A0991F55A /* CaptchaWebViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CaptchaWebViewController.swift; sourceTree = "<group>"; };
588592
8A7741BA27328AEA009FAADA /* PopMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopMenuView.swift; sourceTree = "<group>"; };
589593
8A7741BC2733BF15009FAADA /* RoomStatusUpdateRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomStatusUpdateRequest.swift; sourceTree = "<group>"; };
590594
8A7741BE2733D040009FAADA /* UIViewController+Toast.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Toast.swift"; sourceTree = "<group>"; };
@@ -1325,6 +1329,7 @@
13251329
8A07E5FF2A8B64A400796CA5 /* AgreementCheckView.swift */,
13261330
8A07E5F72A8B594B00796CA5 /* SignUpInputView.swift */,
13271331
8A07E5FD2A8B5DE300796CA5 /* VerifyCodeTextfield.swift */,
1332+
8A7488707140887A0991F55A /* CaptchaWebViewController.swift */,
13281333
8A303BE329AD9ADB00E0AF36 /* CountryCodePicker.swift */,
13291334
8A05A1572834EA99002DE9B9 /* Agreement.swift */,
13301335
8A1BF0C2280D3DB000D76F22 /* ForceBindPhoneViewController.swift */,
@@ -1345,6 +1350,7 @@
13451350
8A3A95D62AA5CDCF003C99D6 /* Vendor */ = {
13461351
isa = PBXGroup;
13471352
children = (
1353+
617CBAD22EF40A50004D2BCB /* captcha.html */,
13481354
8A1E22B42C2139560005F9D5 /* rtm_v2.2.1 */,
13491355
8A3A95D72AA5CDDA003C99D6 /* WechatOpenSDK-XCFramework.xcframework */,
13501356
);
@@ -2075,6 +2081,7 @@
20752081
8A2905F42A038DBE00147244 /* reward.json in Resources */,
20762082
8AD7C6C627157EA7001C4AAD /* Assets.xcassets in Resources */,
20772083
8AC0943429E0171400CC641A /* whiteboard_rebuild.bundle in Resources */,
2084+
617CBAD32EF40A50004D2BCB /* captcha.html in Resources */,
20782085
8A270BC3271980A300450DC6 /* AboutUsViewController.xib in Resources */,
20792086
8A270BA8271977EE00450DC6 /* ContactUsViewController.xib in Resources */,
20802087
8A9ACC0B271E98DB00E7E7CE /* RoomTableViewCell.xib in Resources */,
@@ -2338,6 +2345,7 @@
23382345
8A8020912755B09000F5691C /* RtcViewController.swift in Sources */,
23392346
8A7741C12734CEFE009FAADA /* ChatNoticeTableViewCell.swift in Sources */,
23402347
8A07E5FE2A8B5DE300796CA5 /* VerifyCodeTextfield.swift in Sources */,
2348+
DD7336DF893169B0E3BB52C2 /* CaptchaWebViewController.swift in Sources */,
23412349
8A07E5FC2A8B5CB400796CA5 /* PasswordTextfield.swift in Sources */,
23422350
8A13352A288FA21000C825DE /* MessageCensorRequest.swift in Sources */,
23432351
8A2E0C4A28D03B8300CD63EE /* UIView+seperatorLine.swift in Sources */,
@@ -3580,6 +3588,7 @@
35803588
CURRENT_PROJECT_VERSION = 1;
35813589
DEFINES_MODULE = YES;
35823590
DEVELOPMENT_TEAM = 48TB6ZZL5S;
3591+
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 48TB6ZZL5S;
35833592
ENABLE_BITCODE = NO;
35843593
EXCLUDED_ARCHS = "$(inherited)";
35853594
GENERATE_INFOPLIST_FILE = YES;
@@ -3612,6 +3621,7 @@
36123621
PRODUCT_BUNDLE_IDENTIFIER = io.agora.flat;
36133622
PRODUCT_NAME = "$(inherited)";
36143623
PROVISIONING_PROFILE_SPECIFIER = flat2;
3624+
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = flat;
36153625
SWIFT_EMIT_LOC_STRINGS = YES;
36163626
SWIFT_OBJC_BRIDGING_HEADER = Flat/bridgingHeader.h;
36173627
SWIFT_OPTIMIZATION_LEVEL = "-Onone";

Flat/Api/Core/FlatServerError.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ enum FlatApiError: Int, LocalizedError, CaseIterable {
8787
case LoginGithubSuspended = 90000
8888
case LoginGithubURLMismatch
8989
case LoginGithubAccessDenied
90+
91+
case CaptchaFailed = 150000
92+
case CaptchaInvalid
93+
case CaptchaRequired
9094

9195
var errorDescription: String? {
9296
localizeStrings(String(describing: self))

Flat/Api/Requests/Flat/Auth/SMSRequest.swift

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,47 +13,53 @@ struct SMSRequest: FlatRequest {
1313
case zh
1414
case en
1515
}
16+
1617
enum Scenario {
17-
case login(phone: String)
18-
case bind(phone: String)
19-
case rebind(phone: String)
18+
case login(phone: String, captchaVerifyParam: String)
19+
case bind(phone: String, captchaVerifyParam: String)
20+
case rebind(phone: String, captchaVerifyParam: String)
2021
case bindEmail(String)
21-
case resetPhone(String)
22+
case resetPhone(String, captchaVerifyParam: String)
2223
case resetEmail(String, language: SMSLanguageType)
2324
case emailRegister(email: String, language: SMSLanguageType)
24-
case phoneRegister(phone: String)
25+
case phoneRegister(phone: String, captchaVerifyParam: String)
2526

2627
var path: String {
2728
switch self {
2829
case .rebind:
29-
return "/v2/user/rebind-phone/send-message"
30+
return "/v2/user/rebind-phone/send-message/captcha"
3031
case .bindEmail:
3132
return "/v1/user/bindingEmail/sendMessage"
3233
case .login:
33-
return "/v1/login/phone/sendMessage"
34+
return "/v1/login/phone/sendMessage/captcha"
3435
case .bind:
35-
return "/v1/user/bindingPhone/sendMessage"
36+
return "/v1/user/bindingPhone/sendMessage/captcha"
3637
case .resetPhone:
37-
return "/v2/reset/phone/send-message"
38+
return "/v2/reset/phone/send-message/captcha"
3839
case .resetEmail:
3940
return "/v2/reset/email/send-message"
4041
case .emailRegister:
4142
return "/v2/register/email/send-message"
4243
case .phoneRegister:
43-
return "/v2/register/phone/send-message"
44+
return "/v2/register/phone/send-message/captcha"
4445
}
4546
}
46-
47+
4748
var encodableResult: Encodable {
4849
switch self {
49-
case .rebind(phone: let phone): return ["phone": phone]
50+
case .rebind(phone: let phone, captchaVerifyParam: let captchaVerifyParam):
51+
return ["phone": phone, "captchaVerifyParam": captchaVerifyParam]
5052
case .bindEmail(let email): return ["email": email]
51-
case .login(phone: let phone): return ["phone": phone]
52-
case .bind(phone: let phone): return ["phone": phone]
53-
case .resetPhone(let phone): return ["phone": phone]
53+
case .login(phone: let phone, captchaVerifyParam: let captchaVerifyParam):
54+
return ["phone": phone, "captchaVerifyParam": captchaVerifyParam]
55+
case .bind(phone: let phone, captchaVerifyParam: let captchaVerifyParam):
56+
return ["phone": phone, "captchaVerifyParam": captchaVerifyParam]
57+
case .resetPhone(let phone, captchaVerifyParam: let captchaVerifyParam):
58+
return ["phone": phone, "captchaVerifyParam": captchaVerifyParam]
5459
case .resetEmail(let email, language: let l): return ["email": email, "language": l.rawValue]
5560
case .emailRegister(email: let email, language: let l): return ["email": email, "language": l.rawValue]
56-
case .phoneRegister(phone: let phone): return ["phone": phone]
61+
case .phoneRegister(phone: let phone, captchaVerifyParam: let captchaVerifyParam):
62+
return ["phone": phone, "captchaVerifyParam": captchaVerifyParam]
5763
}
5864
}
5965
}

Flat/EnvConfigs/Develop.xcconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,6 @@ CAMERA_ACCESS_ALERT = 需要使用相机来进行视频通话
3636
PRIVACY_URL = www.flat.apprtc.cn/privacy.html
3737
SERVICE_URL = www.flat.apprtc.cn/service.html
3838
CN_SPECIAL_AGREEMENT = 1
39+
ALIYUN_CAPTCHA_PREFIX = cn
40+
ALIYUN_CAPTCHA_PREFIX = x9woxy
41+
ALIYUN_CAPTCHA_SCENE_ID = 1xtvhu80

Flat/EnvConfigs/Env.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,18 @@ struct Env {
6666
var googleClientId: String {
6767
value(for: "GOOGLE_CLIENT_ID") as String
6868
}
69+
70+
var aliyunCaptchaRegion: String {
71+
value(for: "ALIYUN_CAPTCHA_REGION") as String
72+
}
73+
74+
var aliyunCaptchaPrefix: String {
75+
value(for: "ALIYUN_CAPTCHA_PREFIX") as String
76+
}
77+
78+
var aliyunCaptchaSceneId: String {
79+
value(for: "ALIYUN_CAPTCHA_SCENE_ID") as String
80+
}
6981

7082
var appUpdateCheckURL: URL {
7183
.init(string: "https://" + (value(for: "APP_UPDATE_SOURCE") as String))!

Flat/EnvConfigs/Flint_Develop.xcconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,6 @@ PHOTOS_ACCESS_ALERT = Access to albums for uploading class materials or updating
3434
MIC_ACCESS_ALERT = Requires the use of a microphone for voice calls
3535
CAMERA_ACCESS_ALERT = Need to use the camera for video calls
3636
CN_SPECIAL_AGREEMENT = 0
37+
ALIYUN_CAPTCHA_PREFIX = cn
38+
ALIYUN_CAPTCHA_PREFIX = x9woxy
39+
ALIYUN_CAPTCHA_SCENE_ID = 1xtvhu80

Flat/EnvConfigs/Flint_Release.xcconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,6 @@ CAMERA_ACCESS_ALERT = Need to use the camera for video calls
3636
PRIVACY_URL = flat.agora.io/privacy.html
3737
SERVICE_URL = flat.agora.io/service.html
3838
CN_SPECIAL_AGREEMENT = 0
39+
ALIYUN_CAPTCHA_PREFIX = cn
40+
ALIYUN_CAPTCHA_PREFIX = x9woxy
41+
ALIYUN_CAPTCHA_SCENE_ID = 1xtvhu80

Flat/EnvConfigs/Local.xcconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,6 @@ PHOTOS_ACCESS_ALERT = 访问相册用于上传课件或更新头像
3434
MIC_ACCESS_ALERT = 需要使用麦克风进行语音通话
3535
CAMERA_ACCESS_ALERT = 需要使用相机来进行视频通话
3636
CN_SPECIAL_AGREEMENT = 1
37+
ALIYUN_CAPTCHA_PREFIX = cn
38+
ALIYUN_CAPTCHA_PREFIX = x9woxy
39+
ALIYUN_CAPTCHA_SCENE_ID = 1xtvhu80

Flat/EnvConfigs/Release.xcconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,6 @@ CAMERA_ACCESS_ALERT = 需要使用相机来进行视频通话
3636
PRIVACY_URL = www.flat.apprtc.cn/privacy.html
3737
SERVICE_URL = www.flat.apprtc.cn/service.html
3838
CN_SPECIAL_AGREEMENT = 1
39+
ALIYUN_CAPTCHA_PREFIX = cn
40+
ALIYUN_CAPTCHA_PREFIX = x9woxy
41+
ALIYUN_CAPTCHA_SCENE_ID = 1xtvhu80

Flat/Info.plist

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,12 @@
120120
<string>$(GITHUB_CLIENT_ID)</string>
121121
<key>GOOGLE_CLIENT_ID</key>
122122
<string>$(GOOGLE_CLIENT_ID)</string>
123+
<key>ALIYUN_CAPTCHA_REGION</key>
124+
<string>$(ALIYUN_CAPTCHA_REGION)</string>
125+
<key>ALIYUN_CAPTCHA_PREFIX</key>
126+
<string>$(ALIYUN_CAPTCHA_PREFIX)</string>
127+
<key>ALIYUN_CAPTCHA_SCENE_ID</key>
128+
<string>$(ALIYUN_CAPTCHA_SCENE_ID)</string>
123129
<key>ITSAppUsesNonExemptEncryption</key>
124130
<false/>
125131
<key>LSApplicationQueriesSchemes</key>

0 commit comments

Comments
 (0)