2016-05-31 6 views
2

Ich möchte mit meinem Server mit einer API kommunizieren.Laden externer Daten in eine PhoneGap App mit einer API

Meine erste Frage: Ist es möglich, meine eigene API zu schreiben und sie mit Phonegap zu verwenden?

Diese App würde:

  • das Login-Passwort in SHA1 senden.

  • Die API würde das Token zurückgeben oder SLUG würde lokal gespeichert werden und würde den Zugriff auf den Inhalt der App ermöglichen (oder nicht): mit anderen Worten, erfolgreiche oder nicht Authentifizierung.

Nach erfolgter Authentifizierung sendet die App eine POST-Anforderung an die API mit dem Wert der Token-Daten an das Token (benutzerbezogene) bezogen abzurufen.

Abfrageergebnisse in JSON abgerufen.

Meine zweite Frage: Wie kann es funktionieren und was brauche ich?

Danke für Ihre Hilfe!

Antwort

2

Es ist definitiv möglich, alles zu tun, was Sie verlangen. Sie können Ajax-Aufrufe von der Client-Seite zur Server-Seite verwenden und erhalten alle benötigten Daten zurück, d. H. Das Verbindungstoken.

Also, für Sie Punkte:

  1. "Senden Sie die Login/Passwort in SHA1": das Login/Passwort Paar aus dem DOM, umwandeln in SHA256 (besser als SHA1) über an den Server senden Ajax
  2. erhalten Sie das Ergebnis von Ihrem Server im JSON-Format. Wenn Erfolg, erhalten den angegebenen Token und lokal speichern temporäre
  3. das Token Nutzen Sie jede Kommunikations-API von Ihrem Client auf den Server zu nennen, so dass Sie über die Benutzeridentität sicher sein werden

ich auch vorschlagen würde zu Verwenden Sie ein HTTPS-Protokoll für den Fall, dass persönliche Daten von Ihrer App verwaltet werden.

Was benötigen Sie? JS und/oder jQuery Erfahrung, (möglicherweise) den gesamten Code auf der Client-Seite und der Server-Seite zu verwalten, Zeit zu entwickeln. Ich empfehle Ihnen auch, ein großes Online-Tool namens Runscope zu verwenden, um alle Ihre Client/Server-Kommunikation und Debug zu verfolgen.

//// EDIT ////

  • Wie mit Ihrem API zur Interaktion: Ich bin ein Client-Seite dev, so kann ich Ihnen einen kurzen Ausschnitt Drop einloggen:

email = $("#email").val();
password = $("#password").val(); var newdatatosend = email+"/"+password;
var datatosend = {"login": window.btoa(newdatatosend) }; $.ajax({ type: "POST", url: url_main+url_api+url_login, dataType: 'json', data: JSON.stringify(datatosend), contentType: "application/json" }) .done(function(data) { // Here are data received from the server: the connection token })

  • Wie man lesen kann, erhalte ich das Token vom Server (wenn mein Beglaubigungs ar E echt) und ich es in einem SessionStorage speichern (ein lokaler Speicher, der leer ist, wenn die App geschlossen wird).Wie auch immer, Sie sollten die Ablaufzeit des Tokens auf der Serverseite verwalten (2 Stunden? 12 Stunden?). Wenn der Client versucht, sein altes gespeichertes Token zu verwenden, müssen Sie sich erneut anmelden, um die Sitzung zu aktualisieren.
  • Um die Session-Speicherung Sie einfach Satz verwenden verwenden/Funktionen erhalten:

    sessionStorage.setItem('mytoken', token); 
    var token = sessionStorage.getItem('mytoken'); 
    
+0

Dank für Ihre Antwort danken. Ich wusste schon viel über die gesamte Operation. Was mir gefallen hätte, war, wie man die Interaktionen mit der API macht Ich möchte auch wissen, wie das Token funktioniert, wie es gespeichert wird und möglicherweise Hinweise auf seine Verwendung (Gültigkeitsdauer des jeweiligen Token) I kenne JavaScript und JQuery mit einer kleinen Präferenz für JQuery. Ich möchte ein Maximum an Sache wird Client-Seite mit Blick auf eine bedeutende Benutzerbasis in der Zukunft behandelt und den maximalen Server zu vermeiden. – MedMatrix