2016-04-04 12 views
2

Hallo Ich versuche, Auth-geschützter Audio/Video-Stream in eckigen App über REST API zu implementieren. Das Ziel besteht darin, sicherzustellen, dass Audio/Video nicht mit anderen nicht angemeldeten Benutzern geteilt wird. Ich habe versucht, Token einmaligen Gebrauch so sieht Flow wie folgt aus:Private Video über REST api

  • Angular für den Einmalgebrauch Token fragen, nachdem Sie Play-Button klicken POST: file/1/token
  • Angular erhalten das Token und Einfügen von Token in url ?token=...
  • Stream-Anfrage ist senden der Server GET: file/1?token=...
  • Server überprüft das Token und entfernt sie aus der Datenbank
  • Wenn Token rechts Strom
beginnen

Das Problem kam, wenn Sie auf Timeline klicken, wo der Stream noch nicht gepuffert ist, so dass der Browser automatisch eine andere Anfrage sendet, die natürlich nicht autorisiert ist, weil das Token bereits entfernt wurde.

Ich möchte api statuslos halten, aber wie Sie sehen, eine Art von Staat wird von HTML-Medien gezwungen.

Ich würde gerne Ihre Hinweise oder Lösungen zu diesem Problem hören.

Antwort

0

Problem ist für jetzt gelöst. Vielleicht ist es nicht die beste Lösung, aber es deckt alle Anforderungen ab. Wir entschieden uns für eine Sitzung, die die REST-Prinzipien bricht, aber einfach funktioniert.

wir Token Jetzt bekommen, wie es vorher mit zur Verfügung gestellt Token GET: file/1?token=...

Der Unterschied POST: file/1/token

Erste-Datei war, ist, dass in der Steuerung neuen PHP-Sitzung öffnen, speichern in Session-Token und es aus der Datenbank entfernen. Jetzt können wir prüfen, ob sich der Token in der Datenbank oder in der Sitzung befindet.

Wenn Sie also einen Link an andere Personen senden, haben diese keinen Zugriff. Nur Sie haben Zugriff, solange das Token in der PHP-Sitzung ist.