• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dostęp / Middleware sprawdzany w tabeli MySQL - VueJS Laravel

Object Storage Arubacloud
0 głosów
165 wizyt
pytanie zadane 4 sierpnia 2019 w PHP przez Greeenone Pasjonat (16,100 p.)

Dzień dobry,

Mam pewien problem którego nie mogę rozgryźć. Stworzyłem dashboard w którym to mogę dodać użytkowników a następnie przypisywać role. Gdy jakiejś roli nie ma, to wtedy mogą ją stworzyć i przypisać. 

Każda rola ma z jakieś 20 switchów dzięki którymi mogę zaznaczyć, czy użytkownik z daną rolą ma dostęp do danego miejsca.

Problem jest taki, że nie wiem jak ograniczyć ten dostęp. Szukałem tutki i znalazłem dwa bardzo dobre

(https://medium.com/@ripoche.b/create-a-spa-with-role-based-authentication-with-laravel-and-vue-js-ac4b260b882f)

 ale problem polega na tym, że middleware jest na statyczny i dla każdej roli trzeba oddzielnie robić routing, auth, tworzyć pliki kontroler itd.

Chciałbym zrobić to na zasadzie, że jak użytkownik wchodzi w dany url, to wtedy skrypt sprawdza czy ma dostęp np.

 

if( Auth::user()->role->statsAccess ){
  return "200";
}
else{
  return "403"
}

 

Problem jest taki, że nie wiem jak to ogarnąć raz z Vue y czy w ogóle takie sprawdzanie takie dostępu w kontrolerze to dobry pomysł.

Czy ktoś mógłby mnie nakierować jak takie coś ogarnąć ? 

Pozdrawiam

1 odpowiedź

0 głosów
odpowiedź 4 sierpnia 2019 przez Arkadiusz Waluk Ekspert (288,330 p.)
wybrane 4 sierpnia 2019 przez Greeenone
 
Najlepsza

Laravel ma mechanizmy do tego, użyj gates i policies. Jak sobie je przygotujesz to będziesz mógł łatwo sprawdzać uprawnienia na modelu usera metodą can() czy użyć middleware can w routingu, na podlinkowanej stronie też jest to pokazane. To się fajnie sprawdza i nie ma co kombinować z własnym middleware, skoro to wszystko jest gotowe.

Nie wiem jak w przypadku Vue. Jak rozumiem masz jakieś rzeczy, które muszą się zadziać w zależności od uprawnień na danej podstronie. Zawsze możesz po prostu przekazywać z backendu na front potrzebne informacje o tym czy użytkownik może daną akcję wykonać (propsy, gdzieś z ładowanymi danymi - jakkolwiek) i wtedy normalnie warunkami sprawdzać czy dana akcja może się wykonać, przycisk pojawić itd. Na proste akcje pewnie wystarczy, jak to zrobić lepiej w samym Vue nie podpowiem.

Pamiętaj tylko o zabezpieczeniu z obydwu stron - nawet jak na frontendzie ukryjesz jakiś guzik, to i tak na backendzie trzeba zweryfikować uprawnienia.

komentarz 4 sierpnia 2019 przez Greeenone Pasjonat (16,100 p.)
Dzięki wielkie! O to właśnie mi chodziło :)

Podobne pytania

+1 głos
0 odpowiedzi 819 wizyt
pytanie zadane 23 sierpnia 2020 w PHP przez Greeenone Pasjonat (16,100 p.)
0 głosów
1 odpowiedź 128 wizyt
0 głosów
0 odpowiedzi 101 wizyt

92,755 zapytań

141,677 odpowiedzi

320,423 komentarzy

62,101 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...