ios - 解析结果的登录验证

标签 ios swift authentication

我已通过发送用户名和密码成功解析了我发出的 SOAP Web 服务请求的结果。

但现在我需要验证这个登录功能,如果真的以编程方式转到新 View :

let menuPageView =  (self.storyboard?.instantiateViewController(withIdentifier: "MenuCentral"))!
self.present(menuPageView, animated: true, completion: nil)

问题是我不知道如何或在哪里添加这样的验证。

    class LoginCentralViewController: UIViewController, SOAPServiceProtocol {
        var chave = ChaveWebService().chave()
        var soapService : SOAPService?
        var resultadoLoginCentral : [LoginCentralModel]!


        @IBOutlet weak var txtUsuarioOUTLET: UITextField!
        @IBOutlet weak var txtSenhaOUTLET: UITextField!
        @IBOutlet weak var btnAcessarOUTLET: UIButton!


        override func viewDidLoad() {
            super.viewDidLoad()
            soapService = SOAPService(delegate: self)

            print(chave)


        }

        @IBAction func btnAcessarACTION(_ sender: Any) {
            soapService?.loginCentral(userName: txtUsuarioOUTLET.text!, password: txtSenhaOUTLET.text!, methodName: nomeServico)

            UIApplication.shared.isNetworkActivityIndicatorVisible = true


        }



        func didSuccessRequest(results: XMLIndexer, requestName: String) {
            UIApplication.shared.isNetworkActivityIndicatorVisible = false

            switch requestName {
            case nomeServico:
                do{
                    resultadoLoginCentral = try LoginCentralModel.realizarLoginCentral(results: results)

                } catch let error as XMLParseError{
                    print(error.description)
                    return
                } catch {
                    print(error)
                    return
                }

                print("codigoCliente = ", resultadoLoginCentral[0].codigoCliente)
                print("permissoes = " , resultadoLoginCentral[0].permissoes)
                break
            default:
                break
            }




        }

        func didFailRequest(err: String, requestName: String) {
            UIApplication.shared.isNetworkActivityIndicatorVisible = false

            switch requestName {
            case nomeServico:
             return
            default:
                break
            }
        }

 func showAlert() {
        let loginAlert = UIAlertController(title: "Central do Assinante", message: "Login/Senha inválidos", preferredStyle: .alert)
        let acaoDefault = UIAlertAction(title: "OK", style: .destructive, handler: nil)
        loginAlert.addAction(acaoDefault)
        present(loginAlert, animated: true, completion: nil)

    }
}

最佳答案

你可以把你的验证码放在这里

 do{
     resultadoLoginCentral = try LoginCentralModel.realizarLoginCentral(results: results)

   //Put here code 
   // we need to call this in main thread 
     DispatchQueue.main.sync {

        if resultadoLoginCentral.codigoCliente.characters.count > 0 && resultadoLoginCentral.permissoes.characters.count > 0{{
           // Login process

       }else{
        //Show Alert
     }
   }
 }

希望对你有帮助

关于ios - 解析结果的登录验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41120624/

相关文章:

java - 授权0 : how to retrieve app_metadata and user_metadata in token?

ios - Swift/如何在具有动态高度的 UITableViewCell 中使用具有动态高度的 UITextView

swift :Expected expression in list of expressions & Expected ',' separator

ios - UI 在 tableview reloadData() 上卡住

node.js - 使用 cookie 进行 Node 用户身份验证

c# - HTTP 请求未经客户端身份验证方案 'Negotiate' 授权。从服务器收到的身份验证 header 是 'NTLM'

iphone - 将 ViewController 分配给委托(delegate),好不好?

ios - 调试区只有 (lldb) 输出,没有其他信息

ios - 滚动时 UITableViewCell 的奇怪行为,UIButtons 消失

swift - 在 Swift 中同时搜索两个元素?