Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift中更改PFUser密码?_Ios_Swift_Parse Platform_Pfuser - Fatal编程技术网

Ios 如何在Swift中更改PFUser密码?

Ios 如何在Swift中更改PFUser密码?,ios,swift,parse-platform,pfuser,Ios,Swift,Parse Platform,Pfuser,我试着用同样的方式更新PFUser的电子邮件,甚至试着转换obj-c代码(来自其他问题);两者都不起作用。我也不知道如何使用云代码(嗯……我安装了它,但我不知道如何将信息传递到云代码或如何使用JavaScript)。有没有一种方法可以在不发送重置电子邮件的情况下更新用户密码?出于安全原因,您不能以这种方式更改用户密码。你有两个选择 密码重置电子邮件 用于重置密码的云代码功能 据我所知,您不知道JavaScript,这里有一个云代码函数,您可以使用它重置用户密码,以及使用Swift调用该函数的

我试着用同样的方式更新PFUser的电子邮件,甚至试着转换obj-c代码(来自其他问题);两者都不起作用。我也不知道如何使用云代码(嗯……我安装了它,但我不知道如何将信息传递到云代码或如何使用JavaScript)。有没有一种方法可以在不发送重置电子邮件的情况下更新用户密码?

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

  • 密码重置电子邮件

  • 用于重置密码的云代码功能

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

函数(在JavaScript中):

调用上述函数的Swift代码:

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

祝你好运

是,无需云代码和电子邮件即可更改密码。更改当前用户会话的“密码”字段后将重置,但您可以通过再次调用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...
        }
    }
}
let currentUser=PFUser.current()
当前用户!。password=“”
当前用户!。中的saveInBackground(){(成功,错误)
如果成功{
PFUser.logInWithUsername(背景:currentUser!.email!,密码:currentUser!.password!){(用户,错误)在
//你的代码在这里。。。
}
}
}

嘿,谢谢!然而,因为我使用的是一个免费帐户,我没有空间让它成为一份“工作”。有没有办法让它成为一个函数(“define”)?当我试图更改它时,它不允许我部署。实际上,看起来parse并不认为它是一项工作。你能解释一下原因吗?因为我很确定如果你把“.job”放进去,它就变成了一个作业…不是一个函数…@nick9999嗨,很抱歉我不是故意放“.job”的。我本想让它成为一个函数,但我在写我的答案时很匆忙。好的,谢谢你让我知道…但是当我尝试部署时,终端称第1行出现语法错误,如果用户通过facebook登录,则支持此操作,以及用户如何通过facebook再次登录?@MuseerAnsari如果用户使用facebook登录,则他们不必首先更改密码
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...
        }
    }
}