Mises à jour de FedCM dans Chrome 143

Publié le 12 janvier 2026

Chrome 143 apporte des modifications à l'API Federated Credential Management (FedCM) pour améliorer la confidentialité, l'expérience des développeurs et l'interopérabilité des navigateurs. Ces modifications sont basées sur les commentaires des fournisseurs d'identité (IdP), des parties de confiance (RP) et de la communauté Web.

Voici les principales modifications :

Prise en charge des réponses JSON structurées à partir du point de terminaison d'assertion d'identité

Auparavant, le point de terminaison d'assertion d'identité FedCM exigeait que la propriété token de sa réponse soit une chaîne. Cela obligeait les développeurs à sérialiser manuellement les données dans une chaîne JSON sur le serveur et à les analyser sur le client.

À partir de Chrome 143, le point de terminaison d'assertion d'identité accepte un objet JSON structuré comme valeur de la propriété token, par exemple :

{
  "token": {
    "access_token": "a1b2c3d4e5f6...",
    "user_info": {
      "email": "jane.doe@company.example",
      "given_name": "Jane",
      "family_name": "Doe"
    }
  }
}

Cette modification élimine la nécessité de sérialiser et d'analyser manuellement le JSON, et permet aux IdP de renvoyer des informations supplémentaires.

Essayez cette fonctionnalité avec la démonstration FedCM ou consultez le guide Implémenter FedCM côté fournisseur d'identité pour obtenir des informations à jour sur la structure de la réponse du point de terminaison d'assertion d'identité mis à jour.

Valider les métadonnées du client

Pour mieux protéger la confidentialité des utilisateurs, FedCM renforce la validation des points de terminaison IdP. Cette modification empêche un IdP d'associer un RP à un ID unique transmis en tant que paramètre de chemin d'accès.

Si votre configuration FedCM utilise le point de terminaison client_metadata, vous devez inclure accounts_endpoint et login_url dans votre fichier .well-known/web-identity. À partir de Chrome 145, le navigateur applique le paramètre accounts_endpoint dans le fichier connu.

{
  "accounts_endpoint": "/example-accounts",
  "login_url": "/example-login"
}

Pour en savoir plus, consultez le guide d'implémentation de FedCM.

Mises à jour concernant la cohérence de l'API et la gestion des erreurs

Chrome 143 introduit deux modifications pour améliorer la clarté et la cohérence de l'API FedCM dans les navigateurs, conformément aux commentaires de l'écosystème Web.

Déplacer le paramètre nonce

À partir de la version 145, Chrome ne prend plus en charge le paramètre nonce de premier niveau. Vous devez transmettre le paramètre nonce dans l'objet params de l'appel navigator.credentials.get() :

const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      // Don't pass nonce as a top-level parameter here
      configURL: "/fedcm.json",
      clientId: "123",
      params: {
     // Place nonce within the params object    
        nonce: "a-random-nonce"
      }
    }]
  }
});

Assurez-vous que votre logique côté serveur attend le nonce dans l'objet params au niveau du point de terminaison d'assertion d'identité.

Renommer IdentityCredentialError.code en IdentityCredentialError.error

Pour éviter les conflits de noms avec la propriété DOMException.code intégrée, IdentityCredentialError.code a été renommée IdentityCredentialError.error. Cette modification sera appliquée à partir de Chrome 145.

try {
  // FedCM API call
} catch (e) {
   // Renamed IdentityCredentialError.code to IdentityCredentialError.error:    
   console.log(e.error);
}

Pour assurer la rétrocompatibilité pendant la période de transition (Chrome 143 et 144), vérifiez les propriétés code et error dans votre logique de gestion des erreurs. Cela garantit que votre solution fonctionne dans les anciens navigateurs pendant que les utilisateurs passent à des versions plus récentes de Chrome :

 // In older browsers, the property might still be named 'code'
 // during the transition period
  const errorCode = e.error ?? e.code;
  if (errorCode) {
    // Handle specific error types
  } else {
    console.error("An unknown error occurred", e);
  }

Pour en savoir plus, consultez la section Renvoyer une réponse d'erreur de la documentation FedCM.

Envoyer des commentaires

Vos commentaires nous sont utiles pour continuer à développer et à améliorer FedCM. Si vous avez des commentaires ou si vous rencontrez des problèmes :

En savoir plus