diff --git a/front_end/src/components/login.tsx b/front_end/src/components/login.tsx index 625df14..34e3902 100644 --- a/front_end/src/components/login.tsx +++ b/front_end/src/components/login.tsx @@ -2,7 +2,7 @@ import { useKeycloak } from '@react-keycloak/web' import { useEffect } from 'react'; import { Athlete, User } from '../classes'; import { useLocalData } from '../context/useLocalData'; -import { postAthlete } from '../requetes'; +import { loginOrRegister, postAthlete } from '../requetes'; import { clearAuthToken, setAuthToken } from '../api'; import { AthleteDTO } from '../classesDTO'; @@ -10,7 +10,7 @@ export const Login =() =>{ const {user,setUser} = useLocalData() const { keycloak } = useKeycloak(); - useEffect(() => { + /*useEffect(() => { const syncAndLoadUser = async () => { if (keycloak.authenticated && keycloak.token && keycloak.tokenParsed) { try { @@ -24,47 +24,39 @@ export const Login =() =>{ const athlete: Athlete = await postAthlete(newAthlete); setUser(athlete); - } catch (error) { - console.error("Error :", error); - } - } - }; - /*postAthlete - if (keycloak.authenticated && keycloak.token) { - const tokenParsed = keycloak.tokenParsed; - setUser( - - { - id: 0, - keycloakId: tokenParsed!.sub!, - email: tokenParsed?.email || "", - nom: tokenParsed?.family_name || "", - prenom: tokenParsed?.given_name || "", - sessions: [] - } - ); - try { - const response = await fetch("http://localhost:8081/api/users/sync", { - method: "POST", - headers: { - "Authorization": `Bearer ${keycloak.token}`, - "Content-Type": "application/json" - }, - }); - console.log("Sync status:", response.status); } catch (error) { - console.error("Sync fetch failed:", error); + console.error("Error :", error); } - }*/ - + } + }; syncAndLoadUser(); }, [keycloak.authenticated, keycloak.token, setUser]); + */ + async function loginUser(){ + if(keycloak.authenticated){ + setAuthToken(keycloak.token); + //alert("Connexion en cours : " + keycloak.tokenParsed?.sub + " " + keycloak.tokenParsed?.realm_access?.roles); + + const logedUser = await loginOrRegister(keycloak); + console.log(logedUser); + if(logedUser!==null){ + setUser(logedUser); + // alert("Connexion avec succès ! " + keycloak.tokenParsed?.sub); + } + else{ + alert("Erreur de connexion " + keycloak.tokenParsed?.sub + " " + keycloak.tokenParsed?.realm_access?.roles); + } + } + } - function handleLogin(): void { - keycloak.login(); - //TODO setUser + useEffect(() => { + loginUser() + },[keycloak.authenticated]) + + async function handleLogin() { + await keycloak.login(); } function handleLogout(): void { @@ -81,9 +73,12 @@ export const Login =() =>{