2016-03-19 11 views
0

Ich habe eine Herausforderung, die ich nicht lösen kann. Ich habe eine Website mit node.js erstellt und habe den gesamten Code für das Routing geschrieben, einschließlich Routing für Subdomains. Auf einige Standorte, auf die nur einige Benutzer zugreifen können, können einige Standorte zugreifen, auf die nur angemeldete Benutzer zugreifen können. Ich wollte einen Chat für meine Benutzer aufnehmen, also ging ich mit und erstellte einen mit socket.io und einigen Client-Seiten js.Dynamische Website ohne clientseitige URL-Handhabung

Jetzt brauche ich die Website, um das Chat-Element zu öffnen, die in einer Leiste über den Bildschirm, wenn der Client zu einem anderen Teil der Website geht. Ich habe in viele Lösungen untersucht, aber fast alle von ihnen enthalten einige js Bibliothek wie angular.js mit dem ng-Modell oder ui Technik, aber alle enthalten schreiben Code für die Client-Seite, die die URL behandelt und was zu laden.

Ich will nicht wirklich diese Methode tun, weil:

  1. Ich will nicht alle meine Wege neu schreiben, und ich bin nicht einmal sicher, wie die Authentifizierung der Benutzer zu handhaben.
  2. Ich finde die Client-Methode zu einem Sicherheitsproblem
  3. Meine Website ist keine einzelne Seite App, ich möchte nur einen Teil der Website geladen bleiben. Hier

sind ein paar Bilder von dem, was ich bin zu wollen:

Zustand 1: State1

Zustand 2: State2

Beachten Sie, dass die Chat-Aufenthalte aber auch andere Inhalte geladen wurden. Außerdem ging es in eine andere Subdomain und einen Ort, auf den nur eingeloggte Benutzer zugreifen können.

Danke!

+1

Aber Sie verstehen, dass wenn Sie zu einer anderen URL über HTTP navigieren, Sie das gesamte HTML technisch neu laden? Sie können es mit einem Popup-Fenster oder (nicht empfohlenen) Frameset oder einem modernen Ansatz mit einer einzelnen Seite App und XHR, die die beste wäre, aber das ist nicht was Sie wollen. – migg

+0

Ja, wenn ich keine Lösung finden kann, werde ich einfach mit dem Popup gehen. Oder wenn einige meiner Benutzer sich beschweren, ich werde nur die Website umschreiben, um die Single-Seite App-Design mit eckigen zu integrieren es scheint nur eine Menge Arbeit für etwas so klein. –

Antwort

2

Ich denke, Sie möchten den Status über die Seite aktualisieren, ähnlich wie z. Facebook tut es. Ein wahrer und vertrauenswürdiger Weg, dies zu tun, ist das Setzen eines Cookies, das den Chat-Status speichert: offen/geschlossen oder den Status auf dem Server speichern. Initialisieren Sie dann beim Laden der Seite den Chat basierend auf diesen Daten.