sql >> Databasteknik >  >> NoSQL >> MongoDB

Arkitektur för inloggningssystem på MEAN stack?

Det slutade med att jag kombinerade mitt ursprungliga arbetsflöde med Expresss auth-exempel, se här . Det är som följer:

  • När användaren initialt laddar appen görs ett http-anrop till en Express-slutpunkt som kontrollerar om det redan finns en session för användaren. Om så är fallet lagras användaren i $rootScope och anses vara inloggad.
  • Varje gång AngularJS-rutten ändras, nås samma slutpunkt. Ruttskydd specificerades på ett sätt som liknar det som beskrivs här . Om slutpunkten någonsin returnerar att ingen session existerar, $rootScope.user är avaktiverad (om det behöver göras), och användaren omdirigeras till inloggningssidan.
  • När inloggningsformuläret bearbetas skickas det till en Express-slutpunkt. Slutpunkten hämtar användaren från mongoDB (om den finns) och försöker hasha lösenordet. Om det är en matchning ställs användarens session in, lagras i mongo DB, och slutpunkten returnerar user objekt (används för att lagra i $rootScope som tidigare nämnts).
  • Varje gång ytterligare slutpunkter nås, skickas funktionerna först genom restrict funktion som säkerställer att en session existerar innan data skickas till klienten. Den returnerar en 401 om ingen session existerar, som sedan hanteras på Angular-sidan med denna HTTP-interceptor för att avaktivera $rootScope.user och omdirigera till inloggningsskärmen.
  • När användaren klickar på "logga ut" på vinkelsidan avaktiveras sessionen och raderas från mongo DB, $rootScope.user är inställd på null och användaren omdirigeras tillbaka till förstasidan.



  1. Uppdaterar kapslat objekt i mongoose

  2. Vad är den exakta skillnaden mellan mongod och mongos

  3. MongoDB hämtar endast matchande underdokument från ett dokument med c#

  4. Hur kan jag aktivera libmongoc ssl i PHP 7 för Mongodb-anslutning?