login fix

This commit is contained in:
tuanvu
2026-01-08 16:36:52 +01:00
parent ba45985394
commit 8a2cfbd2f7
2 changed files with 20 additions and 8 deletions

View File

@@ -4,6 +4,7 @@ import { Athlete, User } from '../classes';
import { useLocalData } from '../context/useLocalData'; import { useLocalData } from '../context/useLocalData';
import { postAthlete } from '../requetes'; import { postAthlete } from '../requetes';
import { clearAuthToken, setAuthToken } from '../api'; import { clearAuthToken, setAuthToken } from '../api';
import { AthleteDTO } from '../classesDTO';
export const Login =() =>{ export const Login =() =>{
const {user,setUser} = useLocalData() const {user,setUser} = useLocalData()
@@ -11,12 +12,23 @@ export const Login =() =>{
useEffect(() => { useEffect(() => {
const syncAndLoadUser = async () => { const syncAndLoadUser = async () => {
const newAthlete:Athlete = new Athlete() if (keycloak.authenticated && keycloak.token && keycloak.tokenParsed) {
try {
const athlete:Athlete = await postAthlete(newAthlete) const newAthlete: Athlete = new Athlete();
newAthlete.keycloakId = keycloak.tokenParsed.sub || "";
setAuthToken(keycloak.token); newAthlete.email = keycloak.tokenParsed.email || "";
setUser(athlete); newAthlete.nom = keycloak.tokenParsed.family_name || "";
newAthlete.prenom = keycloak.tokenParsed.given_name || "";
const newAthleteDTO: AthleteDTO =newAthlete.toDTO();
setAuthToken(keycloak.token);
const athlete: Athlete = await postAthlete(newAthlete);
setUser(athlete);
} catch (error) {
console.error("Error :", error);
}
}
};
/*postAthlete /*postAthlete
if (keycloak.authenticated && keycloak.token) { if (keycloak.authenticated && keycloak.token) {
const tokenParsed = keycloak.tokenParsed; const tokenParsed = keycloak.tokenParsed;
@@ -44,7 +56,7 @@ export const Login =() =>{
console.error("Sync fetch failed:", error); console.error("Sync fetch failed:", error);
} }
}*/ }*/
};
syncAndLoadUser(); syncAndLoadUser();
}, [keycloak.authenticated, keycloak.token, setUser]); }, [keycloak.authenticated, keycloak.token, setUser]);

View File

@@ -128,7 +128,7 @@ export async function postActivityAPI(session: Session, activity: Activite){
export async function postAthlete(athlete: Athlete):Promise<Athlete>{ export async function postAthlete(athlete: Athlete):Promise<Athlete>{
try { try {
const response = await api.post<Athlete>("/athlete/create/",athlete); const response = await api.post<Athlete>("/athlete/create/",athlete.toDTO);
console.log(response); console.log(response);
return response.data; return response.data;
} catch (error) { } catch (error) {