Przechowywanie tokena i ograniczanie dostępu użytkownikom do części aplikacji gdy go brak(lub odwrotnie)

0

Jako, że jestem backendowcem, to lebiega ze mnie we froncie. Robię pierwszy projekt w angular 2+. Zrobiłem sobie troche backendu, teraz pora na front.

No ok.. do tematu. Mam token jwt zwrócony przez backend. Z tego co widzę, to powinienem przechowywać go w ciasteczkach, prawda? Jeśli tak, to czy jest jakiś mechanizm w angular 2+, który pozwala mi zarządzać dostępem do poszczególnych części apki? Mam na myśli to, że w przypadku gdy na przykład token NIE znajduje się w cookie, to użytkownik powinien mieć dostęp do strony logowania, a nie powinien mieć dostępu do strony ustawień swojego konta. Natomiast gdy taki token użytkownik już ma ( czyli zalogował się), to nie powinien mieć dostępu do rejestracji i logowania, ale powinniśmy udostępnić mu dostęp do ustawień konta.

Potrzebuję tylko punktu zaczepienia. Jak to zrobić? Czym się posłużyć? Mógłby przedstawić ktoś fragment kodu?

1

Punkt zaczepienia:
Route guards

Co do tokena to można go przechowywać w ciasteczku jeśli się zmieści albo w local storage,
oba rozwiązania maja swoje plusy i minusy, nie ma niestety jednego idealnego.

0

hmm ok, mam guarda, czy na każdą grupę dostępową muszę robić nowego guarda? np GUardRoleUser, GuardRoleAdmin?

0

dla poszukiwaczy
https://medium.com/@ryanchenkie_40935/angular-authentication-using-route-guards-bf7a4ca13ae3

  • plus dodać do app.module.ts w sekcji imports:
  JwtModule.forRoot({
      config: {
        tokenGetter: () => {
          return localStorage.getItem('token');
        },
        whitelistedDomains: ['localhost:8080']
      }
    })

skonfigurowane pod siebie ofc ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1