2016-10-12 1 views
1

Ich brauche einige Vorschläge von Leuten, die vielleicht eine Erfahrung mit ähnlichen Arten von Anwendungen hatten. Ich baue und App, die für Online-Tests verwendet werden sollte. Wenn Sie beispielsweise einen Job in einem Unternehmen haben möchten, kann HR eine Testsitzung für Sie erstellen und Ihnen einen Link zu einer App senden. Diese E-Mail enthält einen Link. Auf Link klicken möchte ich meine angularjs App treffen. AngularJs erhalten eine Session-ID von dem Link, den sie an den Server senden soll. Der Server muss dann db überprüfen und versuchen, eine Testsitzung mit dieser ID zu finden, und eine Antwort zurückgeben. (Sitzungsdaten, wenn es in Ordnung ist oder eine Nachricht, dass die Sitzung abgelaufen ist, usw.)Zugang AngularJs Anwendung über Link von E-Mail

Das Problem hier ist die Verwendung von JWT-Tokens. Wenn HR beispielsweise einen Teil der App verwendet, muss er authentifiziert werden, was durch JWT-Token erfolgt.

Was ist die beste Vorgehensweise, wenn Sie Benutzer auf der anderen Seite haben? Wie Leute, die den Test machen werden. Sie haben kein JWT-Token, aber der Server wird etwas für die Authentifizierung erwarten.

Sollte ein Benutzer ein benutzerdefiniertes Token erhalten, das nach Ablauf der Testsitzung abgelaufen ist, dann kann ich dieses Token möglicherweise auf winkliger Seite dekodieren und die Benutzerrolle oder etwas Ähnliches überprüfen.

Hatte jemand Erfahrung mit dem Aufbau einer App, die über einen Link erreichbar ist?

+0

Und entfernen? Hat unsere Antwort Ihnen geholfen? – Weedoze

+0

@Weedoze Ja, und vielen Dank. Ich deine Idee und ich werde versuchen, es auf diese Weise umzusetzen und zu sehen, ob es funktioniert. Für mich ist das größte Problem hier, dass ich denke, dass wir zwei getrennte Anwendungen haben sollten. Eine für Benutzer, die den Test durchführen, und eine für Benutzer, die Testsitzungen für sie erstellen. Aber Sie wissen ... eine Bestellung ist eine Bestellung :) –

+0

Warum sollten Sie 2 Anwendungen haben? Sie können nur 1 Anwendung mit 2 differents Links haben. Eine für den Schöpfer und eine für die Tester – Weedoze

Antwort

1

ist ein mögliches Szenario

  1. HR an die App verbinden und erzeugen eine neue Testsitzung

  2. Erstellen Sie eine neue Testsitzung in der Datenbank mit allen notwendigen Infos + hinzufügen 2 Spalten: Token + Token_Expiration. Die wird eine zufällige Zeichenfolge und die Token_Expiration ist jetzt + x Stunden

  3. Senden Sie den Link mit Token an den Benutzer per E-Mail. z: http://myapp.com/?token=ahdk5d5ek4945gol

  4. Benutzer auf den Link, der ihn auf die Zielseite umleitet.

  5. das Token aus der URL abrufen und sie an den Server
  6. Server senden überprüfen müssen, ob dieser Token in der Datenbank
    • existiert Wenn das Token nicht existiert - Verboten Zugang
    • Wenn das Token vorhanden - Überprüfen Sie, ob die aktuelle Zeit nicht die Token_Expiration
  7. Benutzer beenden den Test

  8. nicht überschreitet 0
  9. Server muss die Token oder verwenden Sie eine dritte Spalte Valid und setzen Sie ihn auf false

1

Senden Sie benutzerdefinierte Token mit Link und basierend auf diesem authentifizieren Benutzer dann Sitzungs-ID für dieses benutzerdefinierte Token und Antwort zurückgegeben und benutzerdefinierte Token nach Abschluss des Tests ungültig. Hier