Beim Verwalten von Entitäten in Parse gibt es viele Objekte, die ich an den aktuell angemeldeten Benutzer binden muss.
Meine Bedenken sind:
User
der aktuell angemeldete Benutzer ist. Sie haben diese Beispiel-TODO-App , die in Die Dokumentation zeigt keinen Cloud Code an, um sicherzustellen, dass der User
, dem Todo
zugewiesen ist, der aktuell angemeldete Benutzer ist.
Nun, da ich den Code durchschaue, denke ich, dass jedesmal ein Objekt gespeichert wird es wird an den Benutzer gebunden. Kann jemand erklären, warum diese Anwendung funktioniert und wie sie Todo
s mit User
verknüpft?
UPDATE: Vergesst nicht, ich habe den Ort in ihrem Code gefunden, wo sie den Benutzer angeben, der für den Todo gespeichert werden soll. Meine Frage ist, was einen Benutzer daran hindert, Code zu schreiben, der den Todo mit der Benutzer-ID einer anderen Person speichert?
%Vor% UPDATE # 2: Wenn das User
-Objekt eine ACL
gesetzt hat, damit Benutzer User
Objekte, die sie besitzen, lesen können, wären sie nicht in der Lage Abfrage, um ein anderes Benutzerobjekt zu entfernen. Es gibt jedoch zwei andere mögliche Probleme:
User
-Objekts die objectId des Benutzers übergeben, auch wenn das Feld user
in der Tabelle Todo
s eine _User
? Wenn jemand eine der Lösungen, die hilfreich sein könnten, bestätigen oder Lösungen anbieten kann. Ich werde jetzt versuchen, # 1 zu testen.
UPDATE # 3 - Nach einigen Tests:
user
in der Tabelle Todo
s ein Objekt _User
erfordert, wird die Objekt-ID nicht als Zeichenfolge verwendet. Sie können jedoch ein neues Benutzerobjekt erstellen und die Objekt-ID dort festlegen, um dies zu umgehen.
%Vor% Genau hier habe ich mir Sorgen gemacht. Ich konnte ein Todo erfolgreich in einem anderen Benutzerkonto speichern - solange ich seine user_id ( objectId
) kenne. Mit genug Benutzern können sie wahrscheinlich mindestens eine Person erraten, die zufällig jemandes Konto vermasselt.
Was nun?
Antwort: Verwenden Sie den Cloud-Code, um zu überprüfen, ob der übergebene Benutzer mit dem aktuellen Benutzer übereinstimmt. Die Antwort wurde auf Parse Foren hier .
Sie können Cloud-Code verwenden, um zu überprüfen, ob der übergebene Benutzer mit dem aktuellen Benutzer übereinstimmt. Diese Antwort wurde auf Parse Foren hier .
%Vor%Sie können den Cloud-Code verwenden, um sicherzustellen, dass die objectId der entspricht aktueller Benutzer, der diese Anfrage stellt In der Tat, unsere Beispielanwendung, Anypic, überprüft dies die Klassen "Photo" und "Activity".
Aus dem Cloud-Code von Anypic:
Tags und Links javascript node.js backbone.js parse.com marionette