diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/config/WebSecurityCustomConfiguration.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/config/WebSecurityCustomConfiguration.java index e83eaa7..2cbeccb 100644 --- a/MyINPulse-back/src/main/java/enseirb/myinpulse/config/WebSecurityCustomConfiguration.java +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/config/WebSecurityCustomConfiguration.java @@ -31,7 +31,7 @@ public class WebSecurityCustomConfiguration { public CorsConfigurationSource corsConfigurationSource() { CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowedOrigins(List.of(frontendUrl)); - configuration.setAllowedMethods(Arrays.asList("GET", "OPTIONS")); + configuration.setAllowedMethods(Arrays.asList("GET", "OPTIONS", "POST", "PUT", "DELETE")); configuration.setAllowedHeaders( Arrays.asList("authorization", "content-type", "x-auth-token")); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); diff --git a/front/MyINPulse-front/src/components/GetAppointments.vue b/front/MyINPulse-front/src/components/GetAppointments.vue new file mode 100644 index 0000000..7d73432 --- /dev/null +++ b/front/MyINPulse-front/src/components/GetAppointments.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/front/MyINPulse-front/src/services/api.ts b/front/MyINPulse-front/src/services/api.ts index fe3295a..0210c23 100644 --- a/front/MyINPulse-front/src/services/api.ts +++ b/front/MyINPulse-front/src/services/api.ts @@ -10,6 +10,20 @@ const axiosInstance = axios.create({ }, }); + +axiosInstance.interceptors.request.use( + (config) => { + const token = store.user?.token; // Récupérez le token depuis le store + if (token) { + config.headers["Authorization"] = `Bearer ${token}`; // Ajoutez le token dans l'en-tête + } + return config; + }, + (error) => { + return Promise.reject(error); + } +); + axiosInstance.interceptors.response.use( (response) => response, // Directly return successful responses. async (error) => { @@ -20,15 +34,13 @@ axiosInstance.interceptors.response.use( !originalRequest._retry && store.authenticated ) { - originalRequest._retry = true; // Mark the request as retried to avoid infinite loops. + originalRequest._retry = true; try { await store.refreshUserToken(); - // Update the authorization header with the new access token. axiosInstance.defaults.headers.common["Authorization"] = `Bearer ${store.user.token}`; - return axiosInstance(originalRequest); // Retry the original request with the new access token. + return axiosInstance(originalRequest); } catch (refreshError) { - // Handle refresh token errors by clearing stored tokens and redirecting to the login page. console.error("Token refresh failed:", refreshError); localStorage.removeItem("accessToken"); localStorage.removeItem("refreshToken");