2017-07-28 2 views
0

Wenn ich meinen Server mit den folgenden darauf zugreifen funktioniert:Zugriff auf den Parse-Server in Android ohne Hauptschlüssel geben keine Berechtigung

curl -X POST \ 
    -H "X-Parse-Application-Id: xxx" \ 
    -H "X-Parse-Master-Key: yyy" \ 
    -H "Content-Type: text/plain" \ 
    -d '{"score":1337,"playerName":"Sean Plott","cheatMode":false}' \ 
    http://xx.xx.xx.xx/parse/classes/Inventory 

Aber wenn ich die folgende verwenden, ist es nicht:

curl -X POST \ 
    -H "X-Parse-Application-Id: xxx" \ 
    -H "Content-Type: text/plain" \ 
    -d '{"score":1337,"playerName":"Sean Plott","cheatMode":false}' \ 
    http://xx.xx.xx.xx/parse/classes/Inventory 

ich diesen Fehler statt:

{"error":"unauthorized"} 

Es funktionierte völlig in Ordnung früher. Ich hatte ein paar Einstellungen geändert und auf die neueste Parse Server-Version aktualisiert und dann hörte es auf zu arbeiten, zusammen mit allen anderen damit verbundenen Anwendungen.

Die Web-Version funktioniert, was darauf hindeutet, dass der REST-API-Schlüssel in Ordnung war. Ich kann alles auch über das Dashboard perfekt erreichen. Das einzige Problem ist, wenn ich mit Android darauf zugreife, die nur eine Anwendungs-ID zur Identifikation geben kann.

Könnte ich eine falsche Einstellung geändert haben, die das blockiert hat? Ich glaube nicht, dass ich etwas geändert habe, obwohl es die kleine Möglichkeit gibt, dass ich eine Klammer nicht geschlossen habe oder etwas in der Datei server.js auskommentiert habe.

+1

Haben Sie Ihrer index.js vielleicht einen Clientschlüssel hinzugefügt? Wenn Sie den Parse-Server initialisieren? Ich weiß, wenn Parse-Server gestartet wurde, machten sie das optional (obwohl empfohlen). Es wird nicht als "geheim" betrachtet, da es von Ihrer App dekompiliert werden kann, aber Sie sollten niemals Ihren Hauptschlüssel in den mobilen Client stecken. –

+0

Es scheint, ich habe alle 'clientKey' aus dem Code entfernt, aber das Problem ist immer noch da. – Muz

+0

Ich würde empfehlen, den Clientschlüssel zu verwenden. Wie wird Ihr Server initialisiert? Mit oder ohne einen Kundenschlüssel? Zeige dir redacted index.js bitte. –

Antwort

1

Es ist hier angesprochen: https://github.com/parse-community/parse-server

Der Client-Schlüssel mit Parse verwendet wird, ist nicht mehr erforderlich, mit Parsen Server. Wenn Sie diese noch benötigen möchten, um z. B. den Zugriff auf ältere Clients verweigern zu können, können Sie die Schlüssel zur Initialisierungszeit festlegen. Wenn Sie einen dieser Schlüssel festlegen, müssen alle Anforderungen einen der konfigurierten Schlüssel bereitstellen.

  • clientKey
  • javascriptKey
  • restAPIKey
  • dotNetKey

Was geschah, war, dass ich restAPIKey in meiner Config-Datei hatte, so dass es eine der anderen vier Tasten erforderlich als Gut. Das neue Update zwang meine App dazu, clientKey zu verwenden oder restAPIKey aus der Konfiguration zu entfernen.

Verwandte Themen