Accounts.changePassword 在方法中不起作用
Accounts.changePassword doesn't work in Method
我正在开发一个 Meteor 应用程序,我想将对 Accounts.changePassword
的调用从客户端转移到一个方法。但是,当我尝试 运行 该方法时,出现此服务器错误:
Exception while invoking method 'setPersonalPassword' TypeError:
Object [object Object] has no method '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()
。
在服务器上,您应该使用 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
我正在开发一个 Meteor 应用程序,我想将对 Accounts.changePassword
的调用从客户端转移到一个方法。但是,当我尝试 运行 该方法时,出现此服务器错误:
Exception while invoking method 'setPersonalPassword' TypeError: Object [object Object] has no method '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()
。
在服务器上,您应该使用 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