Angular 4 dostęp do aplikacji na podstawie roli

0

Witam wszystkich,

Mam małe pytanie. Szukałem wszędzie i nie znalazłem jednoznacznej odpowiedzi. Jakie na chwilę obecną są praktyki z dostępem do aplikacji. Pisze małą apkę w Angularze 4. Po zalogowaniu dostaję token (backend jest w node.js postawiny na aws) który przechowuję w localstorage. Teraz chcę dodać do aplikacji obsługę ról. Np admin może dostać się do wszystkiego ale user tylko do niektórych funkcjonalności. Tylko nie wiem jak te role obsłużyć. Gdzie ją powinienem przechowywać dla aplikacji? Myślałem w localstorage i dać w aplikacji *ngIf zależnie od tego jaka jest rola. Są jakieś lepsze praktyki niż ta którą zaproponowałem?

1

Wszystkie zabezpieczenia na froncie są pozorne więc możesz zrobić ng-if, i tak na backendzie musi byc zabezpieczenie

0

To jest single page application. Cała aplikacja jest pobierana na raz czyli nawet zwykły użytkownik ma dostęp do panelu admina. Nie ma co prawda danych jeżeli na backendzie jest to zabezpieczone . Jednak tak czy siak może zobaczyć zmieniając pare zmiennych jak wygląda panel admina.

0

Dziekuje wszystkim za pomoc. A czy da sie ta zmienna jakos ukryc by nie byla na pierwszy rzut oka widoczna? Co sadzicie o localstorage? Moze jakies zaszyfrowanie czy cos?

0

Jak wcześniej ci napisano, nie ma sensu. Wszystko łatwo podmienić/podejrzeć po stronie frontu. Nawet jak zakodujesz, to front będzie używał zakodowanych wartości bądź miał algorytm odkodowujący. Wszystko widoczne. Ostatnio pisałem aplkę na Angular2 gdzie security było ważne. Generowałem tokena uwierzytelniającego gdzie byłby zakodowane role, rola była jako zwykły obiekt i ngIf'ami sprawdzana. Po stronie serwera zawsze sprawdzałem czy rola nadal jest ok (wszystko na redisie). działało to szybko i sprawnie

0

Dziękuję za pomoc. Ostatecznie będę próbował "przymaskować" tą zmienną roli i trzymał ją w localstorage. Jakoś ją w prosty sposób zakoduję by ktoś inny nie miał zbyt łatwo dostać się tam gdzie nie powinien.

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