sql >> Databáze >  >> NoSQL >> MongoDB

Architektura pro přihlašovací systém na MEAN stack?

Nakonec jsem zkombinoval svůj původní pracovní postup s příkladem ověření Express, viz zde . Je to takto:

  • Když uživatel nejprve načte aplikaci, provede se volání http do koncového bodu Express, které zkontroluje, zda již pro uživatele existuje relace. Pokud ano, uživatel je uložen v $rootScope a považován za přihlášeného.
  • Kdykoli se změní trasa AngularJS, přistupuje se ke stejnému koncovému bodu. Ochrana trasy byla specifikována způsobem podobným popsanému zde . Pokud koncový bod někdy vrátí, že žádná relace neexistuje, $rootScope.user není nastaven (pokud je to nutné) a uživatel je přesměrován na přihlašovací stránku.
  • Když je přihlašovací formulář zpracován, odešle se do expresního koncového bodu. Koncový bod načte uživatele z mongoDB (pokud existuje) a pokusí se zahašovat heslo. Pokud se jedná o shodu, je nastavena relace uživatele, uložena v mongo DB a koncový bod vrátí user objekt (používá se k ukládání do $rootScope, jak bylo zmíněno výše).
  • Při každém přístupu k dalším koncovým bodům jsou funkce nejprve předány přes restrict funkce, která zajišťuje existenci relace před odesláním jakýchkoli dat klientovi. Vrací 401 pokud neexistuje žádná relace, která se pak zpracuje na straně Angular pomocí tohoto zachycovače HTTP zrušte nastavení $rootScope.user a přesměrovat na přihlašovací obrazovku.
  • Když uživatel klikne na "odhlásit" na straně Angular, relace se zruší a smaže se z mongo DB, $rootScope.user je nastaveno na null a uživatel je přesměrován zpět na úvodní stránku.



  1. Cluster Failover

  2. Převod R seznamu na JSON

  3. Existuje nějaká konvence pro pojmenování kolekce v MongoDB?

  4. Vytváření inkrementálních čísel pomocí mongoDB