Fonctionnement de l’actualisation automatique des jetons
Le SDK exécute un processus d’arrière-plan qui vérifie périodiquement le jeton d’entité du joueur. Si le jeton est toujours valide mais proche de son expiration (moins d’une heure avant l’expiration), le SDK se réauthentifie automatiquement à l’aide des informations d’identification de l’appel de connexion d’origine. Si cette actualisation réussit, le jeton est mis à jour de manière transparente et le PFEntityHandle reste valide. Votre jeu n’a aucune action à effectuer. Vous pouvez observer ces actualisations silencieuses de jetons en inscrivant un rappel PFEntityRegisterTokenRefreshedEventHandler (voir Actualisation transparente).Quand votre jeu doit gérer l’expiration des jetons
Dans certains scénarios, le SDK ne peut pas actualiser automatiquement le jeton :- Le jeton a déjà expiré. L’actualisation automatique ne fonctionne que si le jeton est encore valide. Si le jeton a complètement expiré, par exemple après un long cycle de suspension/reprise, le SDK ne tente pas de reconnexion automatique. Il en informe plutôt votre jeu via le TokenExpiredHandler.
- Les informations d’identification de connexion d’origine ne sont plus valides. Si le handle ou le jeton fourni initialement à la requête de connexion n’est plus valide, l’actualisation automatique échoue et le TokenExpiredHandler est appelé.
L’inscription d’un PFEntityTokenExpiredEventHandler est recommandée pour tous les titres et est indispensable pour les titres GDK qui prennent en charge la suspension et la reprise. Sans ce gestionnaire, votre jeu n’a aucun moyen de se rétablir après l’expiration d’un jeton.
Inscrire le TokenExpiredHandler
Utilisez PFEntityRegisterTokenExpiredEventHandler pour vous inscrire à un rappel, et PFAuthenticationReLoginWith*Async pour vous réauthentifier lorsque le jeton expire.GDK : suspension, reprise et Quick Resume
Sur les plateformes GDK (consoles XBOX et Windows avec le GDK), un jeu peut être suspendu pendant une période prolongée, par exemple lorsque le joueur passe à un autre jeu, puis revient plus tard via Quick Resume. Pendant la suspension, le jeton d’entité peut expirer. Comme aucun code ne s’exécute pendant la suspension, l’actualisation périodique en arrière-plan du SDK ne peut pas maintenir le jeton actif.Ce qui se passe à la reprise
Lorsque votre jeu reprend, le SDK détecte immédiatement l’état de reprise et vérifie le jeton d’entité. Il n’attend pas le cycle d’actualisation périodique suivant. Si le jeton a expiré pendant la suspension :- Le SDK détecte le jeton expiré.
- Le rappel TokenExpiredHandler est appelé.
- Votre jeu doit appeler PFAuthenticationReLoginWith*Async depuis le gestionnaire pour obtenir un nouveau jeton.
La vérification du jeton à la reprise est déclenchée dès que la connectivité réseau est rétablie. Si le réseau met un certain temps à se réinitialiser après la reprise, le SDK attend la connectivité avant de vérifier le jeton. Aucune vérification de jeton n’est perdue.
