Javascript 在注册或编辑之前验证用户密码

Javascript 在注册或编辑之前验证用户密码,javascript,validation,parse-platform,parse-cloud-code,before-save,Javascript,Validation,Parse Platform,Parse Cloud Code,Before Save,我正在尝试在成功注册或更改用户密码之前验证该密码。 例如,我想强制用户在其密码中至少包含6个字符 Parse.Cloud.beforeSave(Parse.User, function (request, response) { var user = request.object; Parse.Cloud.useMasterKey(); if (user.isNew() || user.dirty("password")) { var regex = /^(.{6,}

我正在尝试在成功注册或更改用户密码之前验证该密码。 例如,我想强制用户在其密码中至少包含6个字符

Parse.Cloud.beforeSave(Parse.User, function (request, response) {

  var user = request.object;

  Parse.Cloud.useMasterKey();

  if (user.isNew() || user.dirty("password")) {

    var regex = /^(.{6,})$/; //at least six characters

    if (!regex.test(user.get("password"))) {
      response.error("Password does not fit the requirements");
      return;
    }
  } 

  if ((user.isNew() || user.dirty("email")) && !user.getEmail()) {
    response.error("Email is empty");
    return;
  }

  response.success();

});
因此,即使使用主密钥,我也无法验证密码。 更新:调用
user.get(“密码”)
将始终返回
未定义的


一种方法是创建一个云函数来验证密码,但是在调用注册之前,由客户端验证密码。我想在
解析的
保存之前将其放入
中。用户

编辑对发现问题非常有帮助。毫无疑问,
user.get(“password”)
将返回用户的密码,但是
Parse.user
对象为用户名、密码和电子邮件提供了特殊的方法。替换为
user.password


这个问题没有说明什么不起作用。谢谢@danh的提醒。正确更新问题。我想这些参数对客户端比云代码更有用。但是,
user.password
仍然返回
undefined
。如果我不得不猜测的话,我会说这是出于安全原因。是的-我的代码在注册之前在客户端上做了类似的事情,并且可能在Save Fire之前,密码混淆已经完成了。您可以在注册之前将密码测试移动到客户端。另外,我认为空邮件是通过解析为您捕获的。关于电子邮件,它没有。如果我提供了一封无效的电子邮件,它会抛出一个错误,但如果它变为空,它会被记录为空。关于密码,我的目标是在服务器上进行验证,以便强制客户机得到良好的实现。另一个想法是一个名为miguelSignup的云函数,它在注册之前进行密码检查。您希望返回时的用户成为当前用户。(参见Parse.User.been文档)