用于在Parse.Cloud.beforeSave中验证密码要求的Parse.com过程(Parse.User

时间:2014-07-16 02:39:12

标签: passwords parse-platform

我正在尝试找到使用Parse.com添加密码要求的最佳程序。看来最简单的方法是在保存用户数据之前使用云功能执行。我唯一需要注意的是,只有当密码与数据库中存储的密码不同或者数据库中不存在用户时,我才想验证用户密码。

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

几个问题:

  1. request.object.existed()是否在beforeSave函数中工作,就像在afterSave中一样?
  2. 我可以通过beforeSave函数中的request.object访问用户的密码(使用Parse.Cloud.useMasterKey())吗?或者我是否需要在函数内查询用户的对象。
  3. 在日志中,beforeSave函数的输入似乎具有与下面的json类似的原始和更新的键。但是,我无法访问原始文件并通过request.object更新json。我该如何访问这些数据?如果在request.object.original.password!== request.object.updated.password
  4. 之间进行比较,则需要执行唯一的检查以验证用户的密码是否已更改,这将是很好的。

    示例云代码日志输出:

    输入:{“original”:{“email”:“blah”,                     “名字”:“等等”,                     “emailVerified”:真实,                     “用户名”:“嗒嗒”                     “createdAt”: “2014-04-28T23:05:47.452Z”                     “updatedAt”: “2014-0716T01:55:52.907Z”,
                        “OBJECTID”:“嗒嗒”                     “sessionToken”: “嗒嗒”},         “更新”:{ “姓”: “blah2”}}

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

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

  if (request.object.isNew()) {
      // new object.. 
      response.success();
  } else {
    if (request.object.dirtyKeys().indexOf("password") > -1) {
      // Attempted to change the password.
      response.error('No.');
    }
  }

});