sql >> Database teknologi >  >> NoSQL >> MongoDB

Arkitektur til login-system på MEAN stack?

Jeg endte med at kombinere min originale arbejdsgang med Express's godkendelseseksempel, set her . Det er som følger:

  • Når brugeren først indlæser appen, foretages et http-kald til et Express-slutpunkt, der kontrollerer, om der allerede eksisterer en session for brugeren. Hvis ja, er brugeren gemt i $rootScope og anses for at være logget ind.
  • Hver gang AngularJS-ruten ændres, tilgås det samme slutpunkt. Rutebeskyttelse blev specificeret på en måde svarende til den, der er beskrevet her . Hvis slutpunktet nogensinde returnerer, at der ikke eksisterer en session, $rootScope.user er deaktiveret (hvis det er nødvendigt), og brugeren omdirigeres til login-siden.
  • Når loginformularen behandles, sendes den til et Express-slutpunkt. Slutpunktet henter brugeren fra mongoDB'en (hvis den findes) og forsøger at hash kodeordet. Hvis det er et match, indstilles brugerens session, gemmes i mongo DB, og slutpunktet returnerer user objekt (bruges til at gemme i $rootScope som tidligere nævnt).
  • Hver gang der er adgang til yderligere endepunkter, sendes funktionerne først gennem restrict funktion, som sikrer, at der eksisterer en session, før data sendes til klienten. Det returnerer en 401 hvis der ikke eksisterer en session, som så håndteres på Angular-siden ved hjælp af denne HTTP-interceptor for at frakoble $rootScope.user og omdirigere til login-skærmen.
  • Når brugeren klikker på "log ud" på vinkelsiden, bliver sessionen deaktiveret og slettet fra mongo DB, $rootScope.user er sat til null, og brugeren omdirigeres tilbage til forsiden.



  1. hvordan man viser forespørgsel, mens man bruger forespørgselsanmærkninger med MongoRepository med forårsdata

  2. mongomapper geospatial 'inden for' forespørgsel

  3. mongodb 3.x driver Android kompatibilitet

  4. MongoDB / Geojson $geointersects problemer