Ich bin neu in Angular und Authentifizierung für Benutzer implementieren.Angular 2 (4/5) überprüfen, ob Benutzer authentifiziert, Best Practices
Die meisten Vorschläge im Web schlagen vor, Sitzung/Benutzername im lokalen Speicher zu speichern, und wenn der Benutzer zurück zur App ist, überprüfen Sie den lokalen Speicher, um korrekte Navigation anzuzeigen (in meiner Navigationsleiste habe ich verschiedene Nav-Schaltflächen für private und öffentliche Ansichten).
Allerdings fand ich diese Lösung mit einigen Nachteilen. Wenn zum Beispiel die Sitzung auf dem Server abgelaufen ist oder der lokale Speicher manuell hinzugefügt wurde, zeigt die App bei der Initialisierung falsche Schaltflächen in der Navigationsleiste an.
Danach kam ich zur Lösung - um Service vor dem Anzeigen von Navbar-Schaltflächen zu verwenden, um eine Anfrage an den Server zu senden, um zu überprüfen, ob der Benutzer aus dem lokalen Speicher mit seiner Sitzung derzeit aktiv ist. Und erst danach werde ich Nav-Tasten anzeigen.
Hier kommt eine Frage: ist es die effizienteste Möglichkeit, um zu überprüfen, ob Benutzer aus dem lokalen Speicher angemeldet ist und Sitzung aktiv ist?
Es gibt einen anderen Weg, den ich dachte, aber keine Lösung gefunden. Da sich meine eckige webapp und nodejs server an zwei verschiedenen Orten befinden, ist es möglich, dass die Webanwendung den Authentifizierungsstatus überprüft (eine Anfrage vom webapp Server an meinen nodejs Server), wenn index.html angefordert wird und mit vorgerenderter navbar antwortet und Benutzerstatus (eingeloggt oder nicht)?
Danke.
P.S. Ich verwende PassportJS und Express auf der Serverseite.
Sie können die JWT-Authentifizierung verwenden, hier ist das Synchronisieren von Localstorage und Serversitzung nicht erforderlich. https://blog.angular-university.io/angular-jwt-authentication/ –