In meiner Webapp, wenn die Hauptseite von einem nicht angemeldeten Benutzer angefordert wird, zeige ich eine Login-Seite (mit nur einem Login-Formular). Dann gibt der Benutzer seine Benutzer-ID und Pwd ein, und ein angularJS-Controller gibt eine HTTP-POST-Anforderung an/connection aus, die bei akzeptierten Anmeldeinformationen ein JWT-Authentifizierungs-Token zurückgibt.Login-Flow mit Angulajs und JWT
Dann möchte ich, dass der angularJS-Controller ein GET on/das Token in der Kopfzeile ausgibt, so dass die nächste geladene Seite die Haupt-Webapp-Seite ist, mit der der verbundene Benutzer anfangen kann zu spielen.
Wie kann ich das mit AngularJS erreichen? Sollte ich $ document.location.href verwenden? Wenn ja, wie kann das Token in den HTTP-Header gesetzt werden?
Dank
Dank wissen, aber das ist "AJAX" -Stil, das heißt, Sie bleiben auf der selben Seite. Nein ? Was ich tun muss, ist eine andere komplette Seite wie mit DOM document.location.href anzufordern. –
Auf der Client-Seite benötigen Sie keine spezielle Kopfzeile, um zu einer anderen Route/URL zu navigieren, da Sie einfach keine HTTP-Anfrage machen, das DOM selbst manipulieren und das Token im Speicher speichern können (rootScope, localStorage, angular service, etc ..) sobald der Benutzer sich anmeldet und einfach eine if-Prüfung vor dem Routing, zum Beispiel so: 'if (JSON.stringify (localStorage.getItem ('your_saved_token'))! ==" null ")) document.location.href = 'yoursecuredpageurl'; sonst document.location.href = 'yourloginpageurl'; ' –
Danke Mustafa. Wird der Jet-Token in der Anfrage für die Seite 'yoursecuredpageurl' enthalten sein? Ja, wenn das Token Teil der URL selbst aber sonst ist? –