2016-03-23 3 views
4

Ich versuche, einen neuen Benutzer registrieren mit:Backand.signup() - "My App-Benutzer erstellen" failed auszuführen

Backand.signup(firstName, lastName, username, password, password2); 

aber ich am Ende immer:

POST https://api.backand.com/1/user/signup 504 (GATEWAY_TIMEOUT) 

Wenn ich überprüfe die Protokolle (Log> Server Side Ausnahmen), habe ich diesen Fehler feststellen:

An unexpected signup exception occured The following action: 
"Create My App User" failed to perform: The operation has timed out 
The operation has timed out Exception has been thrown by the target 
of an invocation. The operation has timed out

ich habe t nicht berührt Er "Create My App User" -Skript.

Sicherheit & Auth> Konfiguration> Öffentlich App: Eingeschaltet und auf Benutzer eingestellt. Ich habe auch anonym ein- und ausgeschaltet und im Falle eines Berechtigungsproblems zwischen ReadOnly und User gewechselt.

Es funktionierte gut vor ein paar Wochen, und ein paar Mal konnte ich einen Eintrag in der Sicherheit & Auth> Registrierte Benutzer Tabelle bekommen, aber ich bekomme es nicht, um neue Einträge in meiner App zu erstellen Benutzertabelle oder sogar überhaupt arbeiten.

Jede Hilfe wäre willkommen.

Antwort

2

Aufgrund des serverseitigen Fehlers, der von der Aktion "App-Benutzer erstellen" zurückgegeben wurde, handelt es sich um ein Sicherheitsproblem.

Die Aktion nutzt die Front-End-Benutzerberechtigung und in diesem Fall muss der Anonymus-Zugriff das Benutzerobjekt aktualisieren können.

Der Fehler wurde gestartet, nachdem Sie den anonymen Schalter deaktiviert oder in den schreibgeschützten Modus geändert haben.

Die Lösung besteht darin, die Admin-Berechtigung in der serverseitigen Aktion zu verwenden. Um die Admin-Berechtigung hinzuzufügen, können Sie den Basisauthentifizierungs-Header verwenden.

Ändern Sie den Code Header diese Linie sein:

headers:{'Authorization':'basic ' + btoa (username + ':'+ password) }

So ist der neue Code in der Aktion "Meine App-Benutzer erstellen" sollte wie folgt aussehen:

var response = $http({ method: "POST", url:CONSTS.apiUrl + "/1/objects/users", params: {parameters: {"sync": true}}, data: parameters, headers:{'Authorization':'basic ' + btoa (username + ':'+ password) } });

Der Benutzername ist die App Master-Token (Securit & Auth/social & Schlüssel).

Das Passwort ist der Admin-Benutzerschlüssel (Team/Schlüssel-Symbol in der Nähe des Benutzername)

+0

Ich bin wieder verliebt in backand zu sein. Konnte es ohne deine Hilfe nicht getan haben! Dies ist die Antwort darauf, wie Sie Ihre App öffentlich machen und anonymen Lesezugriff erhalten können. Danke Itay. –

+0

Schnelle Nachverfolgung: Das einzige Problem ist jetzt, dass es die zusätzlichen Parameter, die ich für mein Benutzerobjekt benötige, scheinbar nicht weitergibt, dh: 'Backand.signup (Vorname, Nachname, E-Mail, Passwort, Passwort2, {Schlüssel1: " value1 ", key2:" value2 "}); ' Gibt es noch etwas, was ich in "Create My App User" tun muss, um diese Informationen jetzt weiterzugeben? (Es hat vorher funktioniert) –

+0

@cs_pupil nicht 100%, dass Sie in der Lage, Passwortdaten in Ihrem benutzerdefinierten Benutzerobjekt zu speichern. Im Idealfall als gute Praxis, ich glaube nicht, dass Sie sein sollten, da der Server dies bereits sicher in dem registrierten Benutzerobjekt speichert. – Vince