W swojej aplikacji mam na razie 2 role:
- USER
- ADMIN
Gdzie wszystkie funkcje USER są dostępne dla ADMIN (include).
Można to zrealizować z wykorzystaniem:
Hierarchical Roles
JWT – JSON Web Token i Spring Security
Tutaj jest fajnie opisane jak zintegrować JWT ze Spring Security: https://www.bezkoder.com/spring-boot-react-jwt-auth/
Jeśli chodzi o reactjs to z użyciem CONTEXT (https://www.freecodecamp.org/news/react-context-for-beginners/) i obsługa opisana tutaj:
Tutaj strona, którą czytam (do Reactjs):
i może jeszcze ta:
https://www.toptal.com/spring/spring-security-tutorial
Przygotowanie template strony React
- Używam BrowserRouter (opis: https://ibaslogic.com/routing-with-react-router/) zeby mozna bylo przechodzic z uzyciem url na rozne podstrony
- Instaluję JWT Decode Library:
npm i jwt-decode
- Instaluję Axios Library:
npm i axios
- Informacje autentykacyjne muszą być widoczne we wszystkich komponentach. Do tego celu używam ReactJS Context API https://hy.reactjs.org/docs/context.html
Zmiany w Spring backend
Zgodnie z video:
Tworzę klasę JwtService, przy okazji: adnotacja @Value(„${jwt.signingKey}”) przed nazwą metody lub zmiennej, pozwala na przypisanie jej wartości z pliku application.properties.
- Instalacja pluginu eclipse: https://projectlombok.org/setup/eclipse, zgodnie z : https://www.youtube.com/watch?v=UKQdv3cu2Ok&ab_channel=InterviewMania
- Nazwy ról muszą sie zaczynać od (prefix): ROLE_