在Meteor中为用户设置新密码

时间:2015-02-27 11:12:34

标签: meteor

这是我想做的事情, 当用户链接社交帐户时,会创建用户,但我希望让用户提交密码,以允许他在没有他的电子邮件和密码的情况下进行登录。

我创建了一个允许用户提交密码的表单,但我找不到合适的方法,唯一可用的方法是

Accounts.changePassword(currentPassword, newPassword, function(error) {
        if (error) {
            message = 'There was an issue: ' + error.reason;
        } else {
            message = 'You reset your password!'
        }
    });

这种方法的问题在于,当我调用Meteor.user()时,我不知道用户的当前密码,他还没有密码,但用户确实存在。

任何建议?

1 个答案:

答案 0 :(得分:1)

您可以轻松完成以下操作。

  if (Meteor.isServer) {
  Meteor.startup(function () {
    Accounts.setPassword("theUserId", "theNewPassword")
  });
}

或使用meteor.methods(未经测试的代码)

 //server
 Meteor.methods({
      changePAssword:function(userId.newPassword){
        Accounts.setPassword(userId, newPassword)
      }
    })

    //client
    Meteor.call('changePAssword',this.userId,newPasswordVariable,function(err,result){
          if(!err){
           console.log("Congrats you change the password")
          }else{
            console.log("pup there is an error caused by " + err.reason)
          }
        })