Пользователь уже вошел в систему и сохранить данные в основных данных с помощью API - PullRequest
0 голосов
/ 10 декабря 2018
@IBAction func login(_ sender: Any) {
    let loginRequest = [
        "phone_no" : self.numberTxt.text! as String,
        "password" : self.passwordTxt.text! as String
    ]
    let headers = [
        "Content-Type": "application/x-www-form-urlencoded",
        "Accept": "application/json",
        "X-Mashape-Key": "user_id",
        "x-access-token": "user_token"
    ]

    Alamofire.request("https:/user/login", method: .post, parameters: loginRequest, encoding: URLEncoding.httpBody, headers: headers)
        .responseJSON { 
            (response) in switch response.result {
                case .success(let value):
                self.loggedInUserData  = response.value as? NSDictionary
                //print(self.loggedInUserData)
                let swiftyJson = JSON(value)
                // print ("return as JSON using swiftyJson is: \(swiftyJson)")
                let name = swiftyJson["name"].stringValue
                let phone = swiftyJson["phoneNo"].stringValue
                print(name)
                print(phone)
                print("Khabbab ")
            }
        }

Я хочу войти в систему и сохранить данные, чтобы потом не нужно было снова входить в систему, этот код является входом в систему и также дает мне некоторое значение

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете использовать UserDefaults для этого.

Когда пользователь успешно вошел в систему

if swiftyJson["msg"].stringValue == "Login Successful"

установить true для ключа "isUserLogged"

UserDefaults.standard.set(true, forKey: "isUserLogged")

, тогда вы можете получить это значение для того же ключа, и еслипользователь не зарегистрирован (значение false) или если вы еще не установили значение для этого ключа (значение nil), вы можете выполнить вход

if UserDefaults.standard.object(forKey: "isUserLogged") == nil || !UserDefaults.standard.bool(forKey: "isUserLogged") {
    // perform login
}

, чтобы ваш loginдействие должно выглядеть так

@IBAction func login(_ sender: Any) {
    if UserDefaults.standard.object(forKey: "isUserLogged") == nil || !UserDefaults.standard.bool(forKey: "isUserLogged") {
        ...
        Alamofire.request("https:/user/login", method: .post, parameters: loginRequest, encoding: URLEncoding.httpBody, headers: headers).responseJSON { (response) in
            switch response.result {
            case .success(let value):
                ...
                if swiftyJson["msg"].stringValue == "Login Successful" {
                    UserDefaults.standard.set(true, forKey: "isUserLogged")
                }
            }
        }
    }
}
...