我正在尝试使用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)
}
}
}
}
它显示已登录,但是当我检查数据库中的数据时却没有
答案 0 :(得分:0)
不确定“我的数据库中的数据不存在”是什么意思,但是,对于错误,消息是明确的:
[AutoFill]无法显示应用程序包ID:com.learning.0363的自动强密码。由于错误:iCloud钥匙串已禁用,因此显示
应用程序尝试在某个时候自动填充某些凭据文本字段,但是您禁用了iCloud钥匙串,从而阻止系统从设备中检索您的登录名/密码信息。
尝试通过类似的设置启用它:
请提前考虑一下,如果同时在设备上禁用了自动填充,则可能会遇到类似的错误。
这是一个非常快速的教程,显示了如何设置所有这些内容:
https://robopress.robotsandpencils.com/strong-passwords-in-ios-12-8ec819b3b99