Проблема отправки данных Heroku из приложения Swift - PullRequest
2 голосов
/ 09 июля 2019

Я пытаюсь отправить данные о создании пользователя из моего приложения swift на heroku sever с помощью mongolab. Я могу отправить данные из почтальона, и они отображаются на моголабе, но при отправке через приложение swift выдает следующую ошибку

2019-07-02 22: 43: 49.473763-0700 Smack [2903: 99473] [MC] Системная группа контейнер для systemgroup.com.apple.configurationprofiles путь /Users/amansingh/Library/Developer/CoreSimulator/Devices/53EA3DDB-EA13-45F9-A9C4-6EB6ABF911A1/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles 2019-07-02 22: 43: 49.474887-0700 Smack [2903: 99473] [MC] Чтение с частные эффективные настройки пользователя. 2019-07-02 22: 44: 12.737834-0700 Smack [2903: 99604] [Автозаполнение] Не удается отобразить автоматические надежные пароли для идентификатора пакета приложения: com.learning.0363.Smack из-за ошибки: iCloud Брелок отключен

import Foundation
import Alamofire
import SwiftyJSON


class AuthService {
    static let instance = AuthService()

    let defaults = UserDefaults.standard
    var isLoggedIn : Bool {
        get {
            return defaults.bool(forKey: LOGGED_IN_KEY)
        }
        set {
            defaults.set(newValue, forKey: LOGGED_IN_KEY)
        }
    }

    var authToken : String {
        get {
            return defaults.value(forKey: TOKEN_KEY) as! String
        }
        set {
            defaults.set(newValue, forKey: TOKEN_KEY)
        }
    }

    var userEmail: String {
        get {
            return defaults.value(forKey: USER_EMAIL) as! String
        }
        set {
            defaults.set(newValue, forKey: USER_EMAIL)
        }
    }

    func registerUser(email: String, password: String, completion: @escaping CompletionHandler){

        let lowerCaseEmail = email.lowercased()

        let body: [String: Any] = [
            "email": lowerCaseEmail,
            "password": password

        ]
        Alamofire.request(URL_REGISTER, method: .post, parameters: body, encoding: JSONEncoding.default, headers: HEADER).responseString { (response) in
            if response.result.error == nil {
                completion(true)
            }else{
                completion(false)
                debugPrint(response.result.error as Any)
            }
        }
    }
    func loginUser(email: String, password: String, completion: @escaping CompletionHandler){
        let lowerCaseEmail = email.lowercased()

        let body: [String: Any] = [
            "email": lowerCaseEmail,
            "password": password

        ]

        Alamofire.request(URL_LOGIN, method: .post, parameters: body, encoding: JSONEncoding.default, headers: HEADER).responseString { (response) in
            if response.result.error == nil {
//                if let json =  response.result.value as? Dictionary<String, Any>{
//                    if let email = json["user"] as? String {
//                        self.userEmail = email
//                    }
//                    if let token = json["token"] as? String {
//                        self.authToken = token
//                    }
//                }
                //USING SWIFTY JSON
                guard let data = response.data else {
                    return
                }
                do {
                    let json = try JSON(data: data)
                    self.userEmail = json["user"].stringValue
                    self.authToken = json["token"].stringValue
                } catch {
                    print(error.localizedDescription)
                }


                self.isLoggedIn = true
                completion(true)
            }else{
                completion(false)
                debugPrint(response.result.error as Any)
            }
        }


    }




}

Это показывает, вошли в систему, но когда я проверил свои данные в базе данных, его там нет

1 Ответ

0 голосов
/ 09 июля 2019

Не уверен, что вы подразумеваете под "моими данными в базе данных их нет", однако, что касается ошибки, сообщение как-то явно:

[Автозаполнение] Невозможно отобразить автоматические надежные пароли для идентификатора пакета приложения: com.learning.0363.Smack из-за ошибки: брелок iCloud отключен

Приложение в какой-то момент пытается автоматически заполнить некоторые текстовые поля учетных данных, но ваша связка ключей iCloud отключена, и система не может получить информацию о вашем логине / пароле с вашего устройства.


Попробуйте включить его из настроек примерно так:

  • Выберите Настройки> [ваше имя]
  • Нажмите Брелок и сдвиньте, чтобы включить его.
  • Введите свой Apple ID и следуйте инструкциям.

enter image description here


Если подумать заранее, вы можете столкнуться с аналогичной ошибкой, если на вашем устройстве также было отключено Автозаполнение .

Вот довольно краткое руководство, показывающее, как все это настроить:

https://robopress.robotsandpencils.com/strong-passwords-in-ios-12-8ec819b3b99

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...