2

我正在开发 Meteor 应用程序,我想将调用Accounts.changePassword从客户端转移到方法。但是,当我尝试运行该方法时,出现此服务器错误:

调用方法“setPersonalPassword”类型错误时出现异常:对象 [object Object] 没有方法“changePassword”

这是有问题的代码:

'setPersonalPassword': function(oldPassword, newPassword){
    Accounts.changePassword(oldPassword, newPassword);
},

但是,此代码在客户端上运行良好:

'submit form': function (event) {
    event.preventDefault();
    var oldPassword = event.target.oldPassword.value;
    var newPassword = event.target.newPassword.value;
    Accounts.changePassword(oldPassword, newPassword)
}

我特别困惑,因为我已经成功地使用了这两种方法Accounts.createUser()Accounts.setPassword()其他方法。

4

1 回答 1

2

在服务器上,您应该使用Accounts.setPassword可以与userId方法调用中的当前一起使用的服务器:

Meteor.methods({
  'setPersonalPassword': function (newPassword){
    const userId = this.userId
    Accounts.changePassword(userId, newPassword)
  }
},

请参阅:https ://docs.meteor.com/api/passwords.html#Accounts-setPassword

于 2020-07-13T15:28:20.723 回答