2016-05-25 7 views
0

Ich frage mich, ob/wie die Parse-Server-Umgebungsvariablen innerhalb einer Client-iOS-App verifiziert werden können.Können die Umgebungsschlüssel, die Parse Server verwendet, in der Client-App überprüft werden?

Für diejenigen von uns, die sich mit Backend-Systemen noch nicht wohl fühlen, wäre es nützlich, während des Tests über den Client validieren zu können, dass der Backend-Parse-Server tatsächlich die richtigen Environmental Keys verwendet.

+0

Sind Sie sicher, dass Sie weiter Parse verwenden möchten? Es wird nächstes Jahr offline gehen. –

+0

Nein. Ich werde kurz auf Parse verzichten. Ich wollte dieses Problem nur lösen, damit ich meine ursprüngliche migrierte Datenbank weiterhin in mLab verwenden kann. – digitalR

Antwort

0

Wenn Sie die Schlüssel zum Einrichten von Parse-Server wie appId, clientKey, masterKey testen, können Sie einen Verifizierungs-Cloud-Code implementieren.

Sobald Sie appId verwenden (oder Sie haben clientKey eingestellt), können Sie diese Funktion aufrufen. Andernfalls erhalten Sie Fehler. Sie können MasterKey nicht in Client-SDK verwenden. Wenn Sie es immer noch testen wollen, können Sie eine Rest-API mit MasterKey auf Ihrem Client implementieren. Aber MasterKey sollte nicht auf der Client-Seite erscheinen, Sie sollten vermeiden, dass der Benutzer dies auslöst, oder jemand könnte Ihren MasterKey bekommen.

Parse.Cloud.define("verify", function(request, response) { 
    if(request.master==true){ 
     response.success(true); 
    }else{ 
     response.error(new Error('MasterKey not matched')); 
    } 
}); 

Herausgegeben

Durch eine GlobalConfig implementieren obj, überprüfen Sie es, wie Sie wollen.

Hier ist ein Beispiel.

globalConfig.js

var globalConfig = {}; 

globalConfig.verify = function(key) { 
    return globalConfig.keys.testKey==key; 
} 

module.exports = globalConfig; 

index.js (teilweise)

var globalConfig = require('./globalConfig.js'); 
var initObj = { 
    databaseURI: databaseUri || 'mongodb://localhost:27017/dev', 
    cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', 
    appId: process.env.APP_ID || 'myAppId', 
    masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it secret! 
    serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse', // Don't forget to change to https if needed 
    liveQuery: { 
    classNames: ["Posts", "Comments"] // List of classes to support for query subscriptions 
    }, 
    testKey: "this is test" 
} 
var api = new ParseServer(initObj); 
globalConfig.keys = initObj; 

und dann können Sie verwenden globalConfig.verify() Ihre Schlüssel

eine Wolke Codebeispiel überprüfen

var globalConfig = require('../globalConfig.js'); 
Parse.Cloud.define('verify', function(req, res) { 
    res.success(globalConfig.verify(req.params.testKey)); 
}); 

oder Sie können Eilpost verwenden

app.post('/test', function(req, res) { 
    //verify and response 
}) 
+0

Ich möchte den Wert von FileKey überprüfen, da ich Probleme mit den abfragenden Sammlungen habe, die PFFile-Typen haben. Sie schlagen mit Internal Server Error fehl. Also will ich den Dateischlüssel ausschließen wie ich denke ich richtig einstelle. Die von Ihnen vorgeschlagene Methode scheint interessant zu sein. Allerdings nicht sicher, wie zu implementieren ist. Scheint ich muss wissen, welches Objekt in Parse-Server mindestens die Umgebungsschlüssel enthält. – digitalR

+0

Wie richten Sie parse-server ein, ähnlich wie bei parse-server-example? – ChunTingLin

+0

Ja. Ich habe zunächst die Schaltfläche "Bereitstellen auf AWS" auf einer der Anleitungsseiten verwendet. Dann klonte ich das Parse-Server-Beispiel, editierte index.js und package.json. Dann habe ich die neue ZIP hochgeladen und sie an die Beispiel-Instanz von Parse-Server weitergegeben. – digitalR

Verwandte Themen