Commit c5f4c204 authored by pete谢兆麟's avatar pete谢兆麟

微信登录 apple登录伪逻辑

parent 89fd1a3c
...@@ -19,8 +19,10 @@ class YHCodeSueecssViewController: YHBaseViewController { ...@@ -19,8 +19,10 @@ class YHCodeSueecssViewController: YHBaseViewController {
var getCodeButton: UIButton! var getCodeButton: UIButton!
var smscodeView: YHSmsCodeInputView! var smscodeView: YHSmsCodeInputView!
var phoneNumber: String? var phoneNumber: String?
var type: YHLoginType = .phone
var viewModel: YHLoginViewModel? var viewModel: YHLoginViewModel?
var token: String = ""
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
viewModel = YHLoginViewModel() viewModel = YHLoginViewModel()
...@@ -132,18 +134,37 @@ class YHCodeSueecssViewController: YHBaseViewController { ...@@ -132,18 +134,37 @@ class YHCodeSueecssViewController: YHBaseViewController {
} }
func requetLogin(phone: String, code: String) { func requetLogin(phone: String, code: String) {
YHHUD.show(.progress(message: "登录中...")) if type == .phone {
self.viewModel?.login(phone : phone, code: code, callBackBlock: {[weak self] success,error in YHHUD.show(.progress(message: "登录中..."))
YHHUD.hide() self.viewModel?.login(phone : phone, code: code, callBackBlock: {[weak self] success,error in
guard let self = self else { return } YHHUD.hide()
if success == false { guard let self = self else { return }
YHHUD.flash(message: error?.errorMsg ?? "") if success == false {
} else { YHHUD.flash(message: error?.errorMsg ?? "")
YHLoginManager.shared.loginSuccessActionBlock?() } else {
YHHUD.flash(message: "登录成功") YHLoginManager.shared.loginSuccessActionBlock?()
self.dismiss(animated: true) YHHUD.flash(message: "登录成功")
} self.dismiss(animated: true)
}) }
})
}
if type == .wechat {
self.viewModel?.wxlogin(unionId: self.token, phone: phone, code: code, callBackBlock: {[weak self] success, error in
guard let self = self else { return }
if success == false {
YHHUD.flash(message: error?.errorMsg ?? "")
} else {
YHLoginManager.shared.loginSuccessActionBlock?()
YHHUD.flash(message: "登录成功")
self.dismiss(animated: true)
}
})
}
if type == .apple {
//苹果登录逻辑
}
} }
func startTime() { func startTime() {
......
...@@ -32,8 +32,9 @@ class YHOtherLoginViewController: YHBaseViewController { ...@@ -32,8 +32,9 @@ class YHOtherLoginViewController: YHBaseViewController {
var wechatButton: UIButton! var wechatButton: UIButton!
var appleButton: UIButton! var appleButton: UIButton!
var privacyView: YHLoginPrivacyView! var privacyView: YHLoginPrivacyView!
var viewModel: YHLoginViewModel? var viewModel: YHLoginViewModel!
var type: YHLoginType = .phone var type: YHLoginType = .phone
var token: String = ""
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
...@@ -176,24 +177,74 @@ class YHOtherLoginViewController: YHBaseViewController { ...@@ -176,24 +177,74 @@ class YHOtherLoginViewController: YHBaseViewController {
loginSubTitleLabel.text = "微信号首次登录绑定手机号" loginSubTitleLabel.text = "微信号首次登录绑定手机号"
appleButton.isHidden = true appleButton.isHidden = true
wechatButton.isHidden = true wechatButton.isHidden = true
privacyView.isHidden = true
case .apple: case .apple:
loginTitleLabel.text = "手机号绑定" loginTitleLabel.text = "手机号绑定"
loginSubTitleLabel.text = "Apple ID首次登录需绑定手机号" loginSubTitleLabel.text = "Apple ID首次登录需绑定手机号"
appleButton.isHidden = true appleButton.isHidden = true
wechatButton.isHidden = true wechatButton.isHidden = true
privacyView.isHidden = true
} }
} }
@objc func getCode() { @objc func getCode() {
IQKeyboardManager.shared.resignFirstResponder() IQKeyboardManager.shared.resignFirstResponder()
if type == .phone {
let phoneNumer = phoneMessageView.phoneTextField.text ?? "" let phoneNumer = phoneMessageView.phoneTextField.text ?? ""
guard phoneNumer.isMobile() == true else { guard phoneNumer.isMobile() == true else {
YHHUD.flash(message: "请输入正确的手机号") YHHUD.flash(message: "请输入正确的手机号")
return return
}
if privacyView.isAgree {
YHHUD.show(.progress(message: ""))
viewModel?.getLoginCode(phoneNumer, callBackBlock: {[weak self] success,error in
YHHUD.hide()
guard let self = self else { return }
if success == true {
let vc = YHCodeSueecssViewController()
vc.phoneNumber = self.phoneMessageView.phoneTextField.text
vc.type = self.type
vc.token = self.token
self.navigationController?.pushViewController(vc)
} else {
var msg = error?.errorMsg ?? ""
if msg.isEmpty {
msg = String(error?.errorCode ?? 404)
}
YHHUD.flash(message: msg)
}
})
} else {
let view = YHPrivacyAlertView(frame: view.bounds)
view.urlBlock = { [weak self] (type,url) in
guard let self = self else { return }
let vc = YHWebViewViewController()
vc.url = url
if type == 0 {
vc.navTitle = "银河港生活隐私政策"
} else if type == 1 {
vc.navTitle = "银河港生活用户条款"
}
self.navigationController?.pushViewController(vc)
}
view.agreeBlock = { [weak self] in
guard let self = self else { return }
self.privacyView.isAgree = true
self.getCode()
}
self.view.addSubview(view)
}
} }
if privacyView.isAgree { if type == .wechat {
let phoneNumer = phoneMessageView.phoneTextField.text ?? ""
guard phoneNumer.isMobile() == true else {
YHHUD.flash(message: "请输入正确的手机号")
return
}
YHHUD.show(.progress(message: "")) YHHUD.show(.progress(message: ""))
viewModel?.getLoginCode(phoneNumer, callBackBlock: {[weak self] success,error in viewModel?.getLoginCode(phoneNumer, callBackBlock: {[weak self] success,error in
YHHUD.hide() YHHUD.hide()
...@@ -203,6 +254,8 @@ class YHOtherLoginViewController: YHBaseViewController { ...@@ -203,6 +254,8 @@ class YHOtherLoginViewController: YHBaseViewController {
if success == true { if success == true {
let vc = YHCodeSueecssViewController() let vc = YHCodeSueecssViewController()
vc.phoneNumber = self.phoneMessageView.phoneTextField.text vc.phoneNumber = self.phoneMessageView.phoneTextField.text
vc.type = self.type
vc.token = self.token
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
} else { } else {
var msg = error?.errorMsg ?? "" var msg = error?.errorMsg ?? ""
...@@ -212,34 +265,56 @@ class YHOtherLoginViewController: YHBaseViewController { ...@@ -212,34 +265,56 @@ class YHOtherLoginViewController: YHBaseViewController {
YHHUD.flash(message: msg) YHHUD.flash(message: msg)
} }
}) })
} else { }
let view = YHPrivacyAlertView(frame: view.bounds) if type == .apple {
view.urlBlock = { [weak self] (type,url) in let phoneNumer = phoneMessageView.phoneTextField.text ?? ""
guard let self = self else { return } guard phoneNumer.isMobile() == true else {
let vc = YHWebViewViewController() YHHUD.flash(message: "请输入正确的手机号")
vc.url = url return
if type == 0 {
vc.navTitle = "银河港生活隐私政策"
} else if type == 1 {
vc.navTitle = "银河港生活用户条款"
}
self.navigationController?.pushViewController(vc)
} }
view.agreeBlock = { [weak self] in YHHUD.show(.progress(message: ""))
viewModel?.getLoginCode(phoneNumer, callBackBlock: {[weak self] success,error in
YHHUD.hide()
guard let self = self else { return } guard let self = self else { return }
self.privacyView.isAgree = true
self.getCode() if success == true {
} let vc = YHCodeSueecssViewController()
self.view.addSubview(view) vc.phoneNumber = self.phoneMessageView.phoneTextField.text
vc.type = self.type
vc.token = self.token
self.navigationController?.pushViewController(vc)
} else {
var msg = error?.errorMsg ?? ""
if msg.isEmpty {
msg = String(error?.errorCode ?? 404)
}
YHHUD.flash(message: msg)
}
})
} }
} }
@objc func wechatLogin() { @objc func wechatLogin() {
//第一次微信登录跳转逻辑 let login = YHShareManager.shared
let vc = YHOtherLoginViewController() login.sendLogin()
vc.type = .wechat login.success = { [weak self] unionId in
navigationController?.pushViewController(vc) guard let self = self else { return }
self.viewModel.wxlogin(unionId: unionId, phone: "", code: "") {[weak self] success, error in
guard let self = self else { return }
if success {
YHLoginManager.shared.loginSuccessActionBlock?()
YHHUD.flash(message: "登录成功")
self.dismiss(animated: true)
} else {
//第一次微信登录跳转逻辑
let vc = YHOtherLoginViewController()
vc.type = .wechat
vc.token = unionId
navigationController?.pushViewController(vc)
}
}
}
} }
@objc func appleLogin() { @objc func appleLogin() {
......
...@@ -132,4 +132,57 @@ extension YHLoginViewModel { ...@@ -132,4 +132,57 @@ extension YHLoginViewModel {
callBackBlock(false, error) callBackBlock(false, error)
} }
} }
func wxlogin(unionId: String, phone: String, code: String, callBackBlock: @escaping (_ success: Bool,_ error: YHErrorModel?)->()) {
let timestamp = Int(Date().timeIntervalSince1970)
print(timestamp)
var params: [String : Any] = ["union_id": unionId,
"client": "super_app",
"testTimestamp":timestamp]
if phone == "" {
params = ["union_id": unionId,
"mobile": phone,
"sms_code": code,
"client": "super_app",
"testTimestamp":timestamp]
}
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Auth.wxlogin
let _ = YHNetRequest.postRequest(url: strUrl, params: params) {[weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog(json)
let dic = json.data
guard let resultModel = YHUserModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
let error : YHErrorModel = YHErrorModel(errorCode:-1,errorMsg: "数据解析不成功")
callBackBlock(false,error)
return
}
if json.code == 200 {
if resultModel.token?.count != 0 {
//token 正常
self.userModel = resultModel
YHLoginManager.shared.userModel = resultModel
//数据保存到本地
YHLoginManager.shared.saveLocalUserInfo()
NotificationCenter.default.post(name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
//回调
callBackBlock(true,nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:-2, errorMsg: "token 不合法")
callBackBlock(false,error)
}
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false,error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
} }
...@@ -12,6 +12,8 @@ import Alamofire ...@@ -12,6 +12,8 @@ import Alamofire
class YHShareManager: NSObject { class YHShareManager: NSObject {
static let shared = YHShareManager() static let shared = YHShareManager()
var scene: WXScene = WXSceneSession var scene: WXScene = WXSceneSession
typealias SuccessHandlerType = (String) -> Void
var success: SuccessHandlerType?
} }
extension YHShareManager { extension YHShareManager {
...@@ -50,10 +52,13 @@ extension YHShareManager { ...@@ -50,10 +52,13 @@ extension YHShareManager {
let errorResponseMsg = string.error?.localizedDescription ?? "" let errorResponseMsg = string.error?.localizedDescription ?? ""
let resultValue = string.value ?? "" let resultValue = string.value ?? ""
let serverDict = resultValue.toDictionary() let serverDict = resultValue.toDictionary()
guard let access_token = serverDict["access_token"] as? String, let openid = serverDict["openid"] as? String else{ guard let access_token = serverDict["access_token"] as? String, let openid = serverDict["openid"] as? String,let unionid = serverDict["unionid"] as? String else{
return return
} }
self.getWechatUserInfo(with: access_token, openId: openid) if let block = self.success {
block(unionid)
}
// self.getWechatUserInfo(with: access_token, openId: openid)
}) })
} }
......
...@@ -162,6 +162,7 @@ class YHAllApiName { ...@@ -162,6 +162,7 @@ class YHAllApiName {
//登录 //登录
struct Auth { struct Auth {
static let login = "infoflow/auth/login" static let login = "infoflow/auth/login"
static let wxlogin = "infoflow/auth/wechat-login"
static let logout = "infoflow/auth/logout" static let logout = "infoflow/auth/logout"
//注销app //注销app
static let unregisterApi = "infoflow/auth/cancellation" static let unregisterApi = "infoflow/auth/cancellation"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment