sql >> Database >  >> NoSQL >> MongoDB

Architectuur voor inlogsysteem op MEAN-stack?

Uiteindelijk heb ik mijn oorspronkelijke workflow gecombineerd met het auth-voorbeeld van Express, gezien hier . Het is als volgt:

  • Wanneer de gebruiker de app voor het eerst laadt, wordt een http-aanroep gedaan naar een Express-eindpunt dat controleert of er al een sessie bestaat voor de gebruiker. Zo ja, dan wordt de gebruiker opgeslagen in $rootScope en beschouwd als ingelogd.
  • Elke keer dat de AngularJS-route verandert, wordt hetzelfde eindpunt geopend. Routebeveiliging is gespecificeerd op een manier die vergelijkbaar is met die beschreven hier . Als het eindpunt ooit retourneert dat er geen sessie bestaat, $rootScope.user is uitgeschakeld (indien nodig), en de gebruiker wordt doorgestuurd naar de inlogpagina.
  • Wanneer het aanmeldingsformulier is verwerkt, wordt het naar een Express-eindpunt gepost. Het eindpunt haalt de gebruiker op uit de mongoDB (als deze bestaat) en probeert het wachtwoord te hashen. Als het een overeenkomst is, wordt de sessie van de gebruiker ingesteld, opgeslagen in de mongo DB, en het eindpunt retourneert de user object (gebruikt om op te slaan in $rootScope zoals eerder vermeld).
  • Telkens wanneer er toegang wordt verkregen tot verdere eindpunten, worden de functies eerst doorgegeven via de restrict functie die ervoor zorgt dat er een sessie bestaat voordat er gegevens naar de client worden verzonden. Het retourneert een 401 als er geen sessie bestaat, wordt deze aan de hoekige kant afgehandeld met behulp van deze HTTP-interceptor om $rootScope.user uit te schakelen en omleiden naar het inlogscherm.
  • Als de gebruiker op "uitloggen" aan de hoekige kant klikt, wordt de sessie uitgeschakeld en verwijderd uit de mongo DB, $rootScope.user is ingesteld op null en de gebruiker wordt teruggestuurd naar de voorpagina.



  1. Hoe maak je een staartbare cursor in de MongoDB-shell?

  2. Hoe gegevens van mongodb te krijgen tussen het opnemen van twee dagen in mongodb met behulp van mongoose

  3. dus je HBase is kapot

  4. Hoe Redis te verwijderen op 'bericht' luisteraars