From 069bcb38959c4306362d393a1a11ddad0341414c Mon Sep 17 00:00:00 2001 From: Alberto Defendi <1369-ahl-berto@users.noreply.gitlab.inf.unibz.it> Date: Thu, 15 Apr 2021 10:13:36 +0200 Subject: [PATCH] Provisorially add token and role to sessionStorage when calls axios It should be re-implemented using react context --- src/components/AuthUser/AuthUser.tsx | 2 ++ src/components/api/PrivateRoute/PrivateRoute.tsx | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/AuthUser/AuthUser.tsx b/src/components/AuthUser/AuthUser.tsx index 144b546..317a5f7 100644 --- a/src/components/AuthUser/AuthUser.tsx +++ b/src/components/AuthUser/AuthUser.tsx @@ -16,6 +16,8 @@ export const AuthUser: FC = () => { .get('api/web/csrf') .then((response) => { axios.defaults.headers.common['X-CSRFTOKEN'] = response.data.token; + sessionStorage.setItem('X-CSRFTOKEN', response.data.token); + sessionStorage.setItem('ROLE', 'admin'); }) .catch((error) => error); }, []); diff --git a/src/components/api/PrivateRoute/PrivateRoute.tsx b/src/components/api/PrivateRoute/PrivateRoute.tsx index 7c32561..1f74eae 100644 --- a/src/components/api/PrivateRoute/PrivateRoute.tsx +++ b/src/components/api/PrivateRoute/PrivateRoute.tsx @@ -18,8 +18,9 @@ export const PrivateRoute = ({ path, requiredRoles, }: Props): JSX.Element => { - const isAuthed = true; - const userHasRequiredRole = requiredRoles.includes('admin'); + const isAuthed = !!sessionStorage.getItem('X-CSRFTOKEN'); + const currentRole = String(sessionStorage.getItem('ROLE')); + const userHasRequiredRole = requiredRoles.includes(currentRole); const message = userHasRequiredRole ? 'Please log in to view this page' : 'Your role is not allowed'; -- GitLab