如何在Swift中更改PFUser密码?

我尝试更新与更新PFUser的电子邮件相同的方式,甚至尝试转换obj-c代码(来自其他问题); 既没有奏效。 我也不知道如何使用Cloud Code(嗯……我安装了它但我不知道如何将信息传递到Cloud Code或如何使用JavaScript)。 有没有办法更新用户密码而无需发送重置电子邮件?

出于安全原因,您无法以这种方式更改用户密码。 你有两个选择

  • 密码重设电邮

  • 云代码function重置密码

据我所知,您不了解JavaScript,这里有一个云代码函数,您可以使用它来重置用户的密码,以及使用Swift调用该函数的方法。

function(在JavaScript中):

Parse.Cloud.define("changeUserPassword", function(request, response) { // Set up to modify user data Parse.Cloud.useMasterKey(); var query = new Parse.Query(Parse.User); query.equalTo("username", request.params.username); // find all the women query.first({ success: function(myUser) { // Successfully retrieved the object. myUser.set("password", request.params.newPassword); myUser.save(null, { success: function(myUser) { // The user was saved successfully. response.success("Successfully updated user."); }, error: function(myUser, error) { // The save failed. // error is a Parse.Error with an error code and description. response.error("Could not save changes to user."); } }); }, error: function(error) { alert("Error: " + error.code + " " + error.message); } }); }); 

Swift代码调用上面的函数:

 PFCloud.callFunctionInBackground("changeUserPassword", withParameters: ["username" : "MyCoolUsername", "newPassword" : passwordField.text]) { (result: AnyObject?, error: NSError?) -> Void in if (error == nil) { // result is "Successfully updated user." } } 

祝你好运!

是的,可以在没有Cloud Code和电子邮件的情况下更改密码。 更改当前用户会话的“密码”字段后,您可以通过再次调用PFUser.logInWithUsername来恢复它。

 let currentUser = PFUser.current() currentUser!.password = "" currentUser!.saveInBackground() { (successed, error) in if successed { PFUser.logInWithUsername(inBackground: currentUser!.email!, password: currentUser!.password!) { (user, error) in // Your code here... } } }