从swift应用程序发送数据Heroku

时间:2019-07-09 04:02:27

标签: swift authentication heroku postman

我正在尝试使用mongolab将创建的用户数据从我的快速应用程序发送到heroku服务器。我可以从邮递员发送数据,并且该数据显示在mogolab上,但是当我通过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] [自动填充]无法显示自动强密码   适用于应用程序包ID:com.learning.0363。由于错误而出现的错误: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 :(得分:0)

不确定“我的数据库中的数据不存在”是什么意思,但是,对于错误,消息是明确的:

  

[AutoFill]无法显示应用程序包ID:com.learning.0363的自动强密码。由于错误:iCloud钥匙串已禁用,因此显示

应用程序尝试在某个时候自动填充某些凭据文本字段,但是您禁用了iCloud钥匙串,从而阻止系统从设备中检索您的登录名/密码信息。


尝试通过类似的设置启用它:

  • 选择设置> [您的姓名]
  • 点击钥匙串并滑动以将其打开。
  • 输入您的Apple ID,然后按照说明进行操作。

enter image description here


请提前考虑一下,如果同时在设备上禁用了自动填充,则可能会遇到类似的错误。

这是一个非常快速的教程,显示了如何设置所有这些内容:

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