Ich frage mich, warum es so beliebt zu sein scheint, dass die Anmeldeseite eines SPA eine separate Seite ist, die keine Seite des SPA ist (wie beim Laden und Senden von Daten über Ajax-Anforderungen).
Ich kann nur an Sicherheit denken, aber ich kann keinen bestimmten Sicherheitsgrund finden. Ich meine, das Einzige, was mir in den Sinn kommt, ist, dass Ihre Anmeldeseite in einem Teil des SPA den Benutzernamen / das Passwort über Ajax sendet, was von Tools wie Firebug oder Web Inspector angezeigt wird, auch wenn Sie es wie gewohnt senden POST-Anfrage, gibt es andere Tools, die diese Daten leicht erfassen können (wie Fiddler, httpscoop, etc ...).
Fehlt mir etwas?
javascript
architecture
Ryanzec
quelle
quelle
Antworten:
Vermutlich geht es darum, das Laden einer Reihe von clientseitigen Ressourcen (z. B. umfangreiche JavaScript-Frameworks, Bilder usw. ) zu sparen , die nur von der Anwendung benötigt werden.
Es gibt ausgefeiltere Mittel, um ein ähnliches Leistungsziel zu erreichen (siehe " Malte Ubl & John Hjelmstad: Ein neuartiger, effizienter Ansatz zum Laden von JavaScript - JSConf EU 2012 "), aber dies ist ziemlich schnell umzusetzen und wahrscheinlich genauso effizient, insbesondere wenn Ihre Web-App verwendet sowieso fast alle Ihre Ressourcen.
Sie können dies in freier Wildbahn auf einer Website wie der Betaversion von http://infogr.am sehen :
quelle
Ich denke, es gibt einige vernünftige Argumente dafür oder dagegen, und ich würde sagen, dass Technologie auch eine Rolle bei der Entscheidung spielt.
Man könnte argumentieren, dass eine separate Anmeldeseite die Verwendung von "Directory Security" ermöglicht. Im Allgemeinen kann jeder die Anmeldeseite sehen, aber nur authentifizierte Benutzer können die Anwendungsseite und das Verzeichnis anzeigen. Routen können auch gesperrt werden, wobei sich / account / von / app / unterscheidet und jede Route ein eigenes "Sicherheitsprofil" hat.
Wenn Sie einen SPA-Ansatz verwenden und Authentifizierung mit Anwendungserfahrung mischen, kann sich die Logik auch verwickeln. Anstatt davon auszugehen, dass der Benutzer "angemeldet ist, weil er hier ist", müssen Sie seinen Authentifizierungsstatus ständig überprüfen und nachfragen, "ob dieser Benutzer hier ist".
Außerdem befindet sich die Anmeldeseite im Allgemeinen auf der verbraucherorientierten Website. Sie gehen zu www.yourapp.com und haben einige Informationen zu Informationen, Kontakten, Support usw. sowie eine Anmeldeseite von der Anmeldeseite nach Authentifizierung können Sie auf eine ganze Reihe von Zielen umleiten.
Der Grund, warum ich eine separate Anmeldeseite führe, und warum ich eine völlig andere App für meine "Consumer Facing" -Seite habe, ist, dass ich nur sehr wenig Unauthentifizierten aussetzen kann. Durch Zufall schlägt ein Trottel auf meiner Anmeldeseite zu. Ich möchte nicht, dass dies die App-Seite beeinflusst. Selbst wenn die Anmeldung nur eine einfache Authentifizierungssuche durchführt. Es hilft mir irgendwie, zu verhindern, dass die Bozos meine beeinflussen Benutzererfahrung .. Im schlimmsten Fall geht meine Verbraucherseite aus und niemand kann sich anmelden, aber zumindest die angemeldeten Benutzer wissen es nicht und ihre Erfahrung wird nicht langsamer. Ich sage nicht, dass dies die beste Wahl ist. Aber zumindest Ich habe das Risiko für den nicht authentifizierten Bereich isoliert.
quelle
Ein Grund dafür ist, dass Sie dann normale Cookie-basierte Sitzungen verwenden können. Der Benutzer meldet sich an, die Antwort sendet ein Cookie zusammen mit der anfänglichen Hauptseite ... und dann senden alle nachfolgenden Ajax-Aufrufe das Cookie zurück an den Server.
quelle
Ich sehe ein paar Gründe dafür:
quelle