2017-07-28 2 views
0

Quand j'accéder à mon serveur avec les éléments suivants il fonctionne:Accès au serveur Parse dans Android sans clé maître ne donne pas l'autorisation

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 

Mais quand j'utilise ce qui suit, il ne fait pas:

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 

Je reçois cette erreur à la place:

{"error":"unauthorized"} 

cela a fonctionné parfaitement bien plus tôt. J'avais changé quelques paramètres et mis à jour vers la dernière version de Parse Server, puis il a cessé de fonctionner, ainsi que toutes les autres applications liées.

La version Web fonctionne, ce qui suggère que la clé API REST était correcte. Je peux accéder à tout parfaitement à travers le tableau de bord. Le seul problème est quand j'y accède avec Android, qui peut seulement donner un identifiant d'application pour l'identification.

Est-ce que j'ai pu modifier un réglage qui a bloqué cela? Je ne pense pas avoir changé quoi que ce soit, bien qu'il y ait une petite possibilité que je n'ai pas fermé une parenthèse ou commenté quelque chose sur le fichier server.js.

+1

Avez-vous ajouté une clé client à votre index.js peut-être? Lorsque vous initialisez parse-server? Je sais que quand le serveur d'analyse est lancé, ils l'ont rendu facultatif (bien que recommandé). Ce n'est pas considéré comme "secret" car il peut être décompilé depuis votre application, mais vous ne devez absolument pas mettre votre clé principale dans le client mobile. –

+0

Il semble que j'ai supprimé tout clientKey du code, mais le problème est toujours là. – Muz

+0

Je recommanderais d'utiliser la clé du client. Comment votre serveur est-il initialisé? Avec ou sans clé client? Vous montrer expurgé index.js s'il vous plaît. –

Répondre

1

Il est élevé ici: https://github.com/parse-community/parse-server

Les touches clientes utilisées avec Parse ne sont plus nécessaires avec Parse Server. Si vous souhaitez toujours les requérir, peut-être pour pouvoir refuser l'accès à des clients plus anciens, vous pouvez définir les clés au moment de l'initialisation. La définition de l'une de ces clés nécessitera que toutes les demandes fournissent l'une des clés configurées.

  • clientKey
  • javascriptKey
  • restAPIKey
  • dotNetKey

Qu'est-il arrivé était que je devais restAPIKey dans mon fichier de configuration, donc il a fallu une des quatre autres touches comme bien. La nouvelle mise à jour a forcé mon application à utiliser clientKey ou à supprimer restAPIKey à partir de la configuration.