Accueil Github ↗
Itération 3

Authentification

Connexion PlayFab : LogIn.cs, flux de login, gestion des erreurs réseau, SafeQuit et RememberMe.

LogIn.cs

MonoBehaviour attaché à la scène de connexion. Lit les champs de saisie, envoie la requête PlayFab et orchestre le chargement des données après succès.

Flux de connexion

// 1. L'utilisateur clique sur "Se connecter"
Login()
  ├─ Lit usernameTMP.text + passwordTMP.text
  └─ PlayFabClientAPI.LoginWithPlayFab(request, OnSuccess, OnError)

// 2. Succès
OnSuccess(LoginResult result)
  ├─ PlayerData.PlayerUserName = username
  ├─ onLoginSuccess?.Invoke()           // déclenche RememberMe si activé
  └─ PlayerDataManager.LoadPlayerGeneralData(callback)
       └─ PlayerData.PlayerPlayfabID = result.PlayFabId
          GestionnaireBadge.ChargerBadges()
          → selon ProfilType : LoadStudentData() ou LoadTeacherData()
UpdatePlayerData()
                → SceneLoaderWithChargement.LoadScene(MainMenu)

Champs sérialisés

ChampTypeDescription
usernameTMPTMP_InputFieldChamp identifiant
passwordTMPTMP_InputFieldChamp mot de passe
erreurDeConnexionFrameGameObjectPanneau d’erreur
erreurDeConnexionMessageTextMeshProUGUITexte du message d’erreur

Gestion des erreurs

Erreur PlayFabMessage utilisateur
ServiceUnavailable”Tu ne semble pas connecté à internet.”
AccountNotFound”Identifiant introuvable.”
InvalidUsernameOrPassword”Mot de passe incorrect.”
APIClientRequestRateLimitExceeded”Tu as fait trop de tentatives… Attends un peu.”

[!NOTE] Un bloc de code “offline mode” pour le développement existe mais est entièrement commenté (identifiants user / Vo2Licorne). Ne pas décommenter en production.

RememberMe

RememberMe.cs s’abonne à onLoginSuccess de LogIn. Quand déclenché, sauvegarde les identifiants dans les PlayerPrefs pour pré-remplir les champs à la prochaine ouverture de l’app.

LogOut

LogOut.cs appelle PlayerData.ClearPlayerData() pour remettre toutes les variables à zéro, puis charge la scène de connexion. Critique pour les tablettes partagées entre plusieurs élèves.

SafeQuit

SafeQuit.cs intercepte la fermeture de l’application (bouton Home du système, etc.) et s’assure que les données en attente d’envoi (AP, statistiques) sont bien sauvegardées avant que le processus ne se termine.

InactiviteCheck

Détecte l’inactivité de l’utilisateur. Après un délai sans interaction, déclenche une déconnexion automatique pour sécuriser les comptes sur tablettes partagées.