2016-11-29 3 views
0

Ich kann nicht scheinen, irgendeine Dokumentation diesbezüglich zu finden. Alles, was ich einfach tun möchte, ist eine Benutzerinfo in meiner Tabelle zu aktualisieren, ohne das Benutzerpasswort zu benötigen. Ich möchte einfach die E-Mail des Benutzers nachschlagen und Informationen für diesen Benutzer aktualisieren. Ändern Sie nicht das Kennwort, sondern andere Spalten in der Tabelle, die diesem Benutzer zugeordnet sind.Parse (.com) php SDK "Hauptschlüssel" anstelle des Passworts für Benutzerabfrage

Beispiel query:

$query = new ParseQuery("_User"); 
$query->equalTo("username", "user001"); 
foreach ($result as $doc) { 
$doc->set('name', "new info"); 
$doc->save(); 
} 

Durch Parse-PHP SDK, wie kann ich einen Benutzer Informationen ändern, nur durch den E-Mail/Benutzername des Benutzers zu kennen? ohne sich einzuloggen?

Ich habe gehört, Sie können dies tun, indem Sie Ihren "Hauptschlüssel" anstelle eines Passworts oder durch einen Cloud-Job, aber ich weiß nicht, wo ich damit anfangen soll.

ich in der API-ref sehen: save(boolean $useMasterKey = true) : null

Wer irgendwelche Ideen?

P.S: Ich habe diese Antwort gefunden, aber ich bin immer noch verwirrt, wie man das ausführt (https://www.parse.com/questions/users-editing-other-users-in-javascript-sdk).

Antwort

0

Das Ändern eines Benutzers sollte wahrscheinlich auf der Serverseite mit einer Cloud-Funktion durchgeführt werden. Sie können eine Cloud-Funktion in JavaScript auf Ihrem Parse-Server einrichten, indem Sie die Datei cloud/main.js bearbeiten. Weitere Dokumentation here.

Grundsätzlich können Sie eine Funktion wie folgt erstellen:

Parse.Cloud.define("modifyuser", function(request, response){ 
    var query = new Parse.Query(Parse.User); 
    query.equalTo('objectId', request.params.objectId); 
    query.find({ 
    useMasterKey: true, 
    success: function(results){ 
     if(results.length>0){ 
     var user = results[0]; 
     user.set("SOMEPARAMETER",true); 
     user.save().then(
      function(result){ 
      }, 
      function(error){ 
       console.log("Error: " + error.code + " " + error.message); 
      }); 
     } 
     } 
    }, 
    error: function(error){ 
      response.error('query error: '+ error.code + " : " + error.message); 
    } 
    }); 
}); 

Und diese Funktion von Ihrem Client aufrufen.

$ParseCloud::run("modifyuser", ["objectId" => "THEUSEROBJECTID"]); 
Verwandte Themen