Login
Newsletter
Werbung

Do, 16. April 2015, 15:00

Mobile Blogging-App mit DreamFactory, WordPress und Mailgun, Teil 2

Benutzerdefinition

Vikram Vaswani

Benutzerdefinition

Schritt 8: Hinzufügen von Authentifizierung und Autorisierung

Die mobile Blogging-Anwendung ist nun voll funktionsfähig - alles, was jetzt noch zu tun bleibt, ist die Sperren einzurichten, so dass nur autorisierte Benutzer darauf zugreifen können. Wie bereits erwähnt, hat DreamFactory alles, was Sie für die Unterstützung der Benutzerauthentifizierung in Ihrer Anwendung benötigen. Um zu sehen, wie das funktioniert, melden Sie sich an Ihrer DSP an und besuchen Sie die Registerkarte Users. Klicken Sie dort auf Create und fügen Sie ein neues Benutzerkonto zum System hinzu, indem Sie E-Mail-Adresse, Vor- und Nachnamen und Kennwort des Benutzers angeben. Klicken Sie auf Save, damit das Konto zum System hinzugefügt wird.

Rollendefinition

Vikram Vaswani

Rollendefinition

Als nächstes wählen Sie die Registerkarte Roles aus und erstellen eine neue Rolle mit dem Namen mblog-users. Stellen Sie sicher, dass das Kontrollkästchen Active angekreuzt ist, um die Rolle zu aktivieren. Im Unterabschnitt Users kreuzen Sie das Kontrollkästchen neben dem Benutzer an, um den Rollenzugriff zuzuweisen. Weiter unten wählen Sie den Unterabschnitt Apps und darin geben Sie der neuen Rolle den Zugriff auf die Anwendung mblog.

DreamFactory lässt Sie den Rollenzugriff nur auf einer Teilmenge der Dienste steuern. Probieren Sie es aus, indem Sie zum Unterabschnitt Service Access gehen und auf die Schaltfläche + klicken, um der neuen Rolle Zugriff auf die WordPress- und Mailgun-Dienste (GET, POST, PUT, DELETE, PATCH, MERGE) zu geben. Sobald Sie fertig sind, klicken Sie auf Save, um die neue Rolle zu erstellen und zu aktivieren.

Gehen Sie zur Registerkarte Config. Wählen Sie den Unterabschnitt Guest Users und deaktivieren Sie das Kontrollkästchen Allow Guest Users. Dann klicken Sie, um die Änderung zu speichern.

Als Ergebnis dieser Schritte bekommen nur Benutzer mit der Rolle mblog-users Zugriff auf die Anwendung. Allerdings müssen Sie auch ein Anmeldeformular zur Anwendung hinzufügen, so dass das System nach Bedarf authentifizieren und Zugriff gewähren kann. Dazu aktualisieren Sie Ihre Datei $APP_ROOT/index.html mit einem Login-Formular wie folgt:

<html>
  <head>
  ...
  </head>
  <body>
    <h1>Mobile Blogging App</h1>
    
    <div id="status" class="alert alert-info" role="alert">&nbsp;</div>

    <form id="login-form">
      <h2>Login</h2>
      <fieldset>
        <div class="form-group">
          <label class="control-label" for="email">Email address</label>
          <div class="controls">
            <input id="email" name="email" class="form-control input-md" type="text" required />
          </div>
        </div>

        <div class="form-group">
          <label class="control-label" for="password">Password</label>
          <div class="controls">
            <input id="password" name="password" class="form-control input-md" type="password" required />
          </div>
        </div>

        <div class="form-group">
          <label class="control-label" for="submit"></label>
          <div class="controls">
            <button id="login-submit" name="submit" class="btn btn-default">Submit</button>
          </div>
        </div>
      </fieldset>
    </form>    
    
    <form id="add-post-form">
    ...
    </form>

  </body>
</html>

Die DreamFactory-Client-SDK enthält bereits eine Methode user.login(), die Sie aufrufen können, um die in das Login-Formular eingegeben Anmeldeinformationen zu validieren. Hier ist der überarbeitete Code:

$(document).ready(function() {

  // validate login
  $("#login-form").validate({
    submitHandler: function(form) {
      var email = $('#email').val();
      var password = $('#password').val();
      var body = {
        email: email,
        password: password
      };
      window.df.apis.user.login({body: body}, function (response) {
        $("#status").show();
        $("#status").html("Logged in successfully!");
        window.authorizations.add("X-DreamFactory-Session-Token", new ApiKeyAuthorization("X-Dreamfactory-Session-Token", response.session_id, 'header'));
        $('#add-post-form').show();
        $('#login-form').hide();
      
      }, function(response){
        $("#status").show();
        $("#status").html("Error logging in!");
      });
    }    
  });

});

Eine erfolgreicher Authentifizierung erzeugt ein Sitzungstoken, das automatisch mit allen zukünftigen Anforderungen verbunden wird.

Und wenn Sie jetzt versuchen, auf die Anwendung zuzugreifen, sollten Sie einen Login-Bildschirm sehen. Sie werden erst nach Eingabe von gültigen Anmeldeinformationen für einen Benutzer mit der Rolle mblog-users in der Lage sein, auf die Anwendung zuzugreifen.

Schlussfolgerung

Und das war's für dieses Tutorial. Die letzten Seiten boten Ihnen einen Crash-Kurs zum Thema, wie man mit DreamFactory eine einheitliche Schnittstelle zu mehreren externen Webdiensten bereitstellen kann. Indem Sie Ihre mobile Anwendung auf DreamFactory aufbauen, können Sie sie schnell mit mehreren Datenquellen verbinden. So können Sie sich auf das Hinzufügen von tollen neuen Funktionen konzentrieren, anstatt sich mit unterschiedlichen Protokollen und Formaten zu befassen.

DreamFactory bietet auch sorgfältig geschriebene Dienste für serverseitige Skripte (WebHooks), Benutzer-Management, Single Sign-On, offene Registrierung, Passwort-Hashing und Gastzugänge. Programmierbare CORS-Unterstützung erleichtert es, Dienste von einer bestimmten Website aus auszuführen, oder Sie können, abhängig von Ihren Sicherheitsrichtlinien, alle Anwendungen vom ursprünglichen Host aus ausführen. Schließlich schreibt DreamFactory auch alle Filter-String-Parameter neu, um SQL-Injection-Angriffe zu stoppen. Diese Funktionen beheben einige der häufigsten Probleme, denen Entwickler von mobilen Anwendungen ausgesetzt sind, sie beschleunigen die Entwicklung und verkürzen die Zeit bis zur Marktreife (Time to Market) für mobile Anwendungen.

Über den Autor

Vikram Vaswani (Webseite) ist der Gründer von Melonfire, einer Beratungsfirma für Open-Source-Software und der Autor von sieben Büchern zu PHP, MySQL und XML-Entwicklung.

  • Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.

    - Weitere Informationen
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung