我想下面的代碼,讓用戶更新他們的密碼,當一個uibutton被點擊。但是,當我輸入當前密碼時,我收到「錯誤的當前密碼」消息。我想系統不會將輸入的值與當前密碼權限進行比較。如果沒有第一個條件,我可以更新密碼。但是我首先要求用戶輸入當前的密碼,以確保安全。有人可以幫忙嗎?讓用戶更新密碼 - 解析 - 斯威夫特
@IBAction func updatePasswordBtn(sender: AnyObject) {
var passwordCheckQuery = PFQuery(className: "_User")
passwordCheckQuery.whereKey("username", equalTo: PFUser.currentUser()!.username!)
var objects = passwordCheckQuery.findObjects()
for object in objects! {
if currentPassword.text == PFUser.currentUser()!.password {
if newPassword.text == retypeNewPassword.text {
var query6 = PFUser.query()
query6!.whereKey("username", equalTo: PFUser.currentUser()!.username!)
query6!.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
for object6 in objects! {
var ob6:PFObject = object6 as! PFObject
ob6["password"] = self.newPassword.text
ob6.save()
}
}
}
else { println("passwords dont match")
}
}
else { println("wrong current password")
}
}
}
@Wains評論後,我更新了我的代碼,並開始工作。
@IBAction func updatePasswordBtn(sender: AnyObject) {
PFUser.logInWithUsernameInBackground(PFUser.currentUser()!.username!, password: currentPassword.text) {
(user:PFUser?, error:NSError?) -> Void in
if error == nil {
var passwordCheckQuery = PFQuery(className: "_User")
passwordCheckQuery.whereKey("username", equalTo: PFUser.currentUser()!.username!)
var objects = passwordCheckQuery.findObjects()
for object in objects! {
if self.newPassword.text == self.retypeNewPassword.text {
var query6 = PFUser.query()
query6!.whereKey("username", equalTo: PFUser.currentUser()!.username!)
query6!.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
for object6 in objects! {
var ob6:PFObject = object6 as! PFObject
ob6["password"] = self.newPassword.text
ob6.save()
println("successfully updated password")
}
}
}
else { println("passwords dont match")
}
}
} else {
println("wrong current password")
}
}
}
只是一個關於密碼的說明:不要將它們保存爲純文本,哈希和鹽!總是!每個使用你的應用並設置密碼的人都過着危險的生活。 – luk2302
我完全與@ luk2302:不要將密碼保存爲普通文本!這是有人可以犯的最糟糕的錯誤之一,如果我是你的應用程序的用戶,我不會使用它,因爲這.. – Kametrixom
再次您好,實際上,因爲我使用解析用戶表進行密碼存儲,arent他們自動散列?有人說,他們不是以純文本形式存儲在鏈接https://parse.com/questions/are-user-passwords-encrypted-or-has-has-has-hash – saner