手动重置密码解析服务器,服务器端

手动重置密码解析服务器,服务器端

问题描述:

我想用电子邮件[email protected]将用户的密码设置为“an”。但是代码不起作用。 这里是我的云代码:手动重置密码解析服务器,服务器端

Parse.Cloud.define('testSetPasswordForUser', function(request, response) { 
    Parse.Cloud.useMasterKey(); 

    var query = new Parse.Query(Parse.User); 
query.equalTo("email", "[email protected]"); 

    query.first({ 
    success: function(results) { 
    results.setPassword("an"); 
    results.save(); 
    }, 
    error: function(error) { 

    } 
}); 



}); 

,这里是我的Android代码:

 Map<String, String> parameters = new HashMap<String, String>(); 
        ParseCloud.callFunctionInBackground("testSetPasswordForUser", parameters, new FunctionCallback<Map<String, Object>>() { 
          @Override 
          public void done(Map<String, Object> mapObject, ParseException e) { 
           if (e == null) { 
//OK 
           } 
           else { 
//WRONG 
           } 
          } 
         }); 

首先,你会抛出一个错误,如果没有匹配的电子邮件,因为results将是未定义的。因此,将处理程序包装在if(results)块中。

其次,您必须使用主密钥来更改密码。否则,任何人都可以更改其他人的密码。

results.save(null, {useMasterKey:true});

空的,你可以在可更新值的可选字典。即 results.save({key1:value1, key2:value2}, {useMasterKey:true});