如何更改 Swift 中的 PFUser 密码?
How to change PFUser password in Swift?
我试过更新 PFUser 电子邮件的方式,甚至尝试过转换 obj-c 代码(来自其他问题);都没有用。我也不知道如何使用 Cloud Code(好吧...我安装了它,但我不知道如何将信息传递到 Cloud Code 或如何使用 JavaScript)。有没有一种无需发送重置电子邮件即可更新用户密码的方法?
出于安全原因,您不能以这种方式更改用户密码。你有两个选择
密码重置电子邮件
云码功能重置密码
据我所知,您不知道JavaScript,这里有一个云代码功能,您可以使用它来重置用户密码,以及使用Swift调用该功能的方法.
函数(在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."
}
}
祝你好运!
是的,无需云代码和电子邮件即可更改密码。更改后 "password" 当前用户会话的字段被重置,但您可以通过再次调用 PFUser.logInWithUsername 来恢复它。
let currentUser = PFUser.current()
currentUser!.password = "<new_password>"
currentUser!.saveInBackground() { (successed, error) in
if successed {
PFUser.logInWithUsername(inBackground: currentUser!.email!, password: currentUser!.password!) { (user, error) in
// Your code here...
}
}
}
我试过更新 PFUser 电子邮件的方式,甚至尝试过转换 obj-c 代码(来自其他问题);都没有用。我也不知道如何使用 Cloud Code(好吧...我安装了它,但我不知道如何将信息传递到 Cloud Code 或如何使用 JavaScript)。有没有一种无需发送重置电子邮件即可更新用户密码的方法?
出于安全原因,您不能以这种方式更改用户密码。你有两个选择
密码重置电子邮件
云码功能重置密码
据我所知,您不知道JavaScript,这里有一个云代码功能,您可以使用它来重置用户密码,以及使用Swift调用该功能的方法.
函数(在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."
}
}
祝你好运!
是的,无需云代码和电子邮件即可更改密码。更改后 "password" 当前用户会话的字段被重置,但您可以通过再次调用 PFUser.logInWithUsername 来恢复它。
let currentUser = PFUser.current()
currentUser!.password = "<new_password>"
currentUser!.saveInBackground() { (successed, error) in
if successed {
PFUser.logInWithUsername(inBackground: currentUser!.email!, password: currentUser!.password!) { (user, error) in
// Your code here...
}
}
}