Aller directement au contenu

Configuration Android

Sur Android, les mots de passe passkeys fonctionnent avec votre site web lorsque l'application et le domaine de la partie de confiance sont connectés par les liens d'actifs numériques.

Après avoir ajouté la configuration du plugin et avoir exécuté bunx cap syncle plugin met à jour le projet de l'hôte Android généré :

  • injecte les asset_statements informations de métadonnées du manifeste
  • écrit la chaîne de ressources générée référencée par ces métadonnées

Ce dont vous avez encore besoin pour héberger

Section intitulée « Ce que vous devez encore héberger »

Vous devez publier assetlinks.json sur le domaine du tiers qui s'appuie :

https://signin.example.com/.well-known/assetlinks.json

Exemple :

[
{
"relation": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target": {
"namespace": "android_app",
"package_name": "app.capgo.passkey.example",
"sha256_cert_fingerprints": [
"AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99"
]
}
}
]
  1. Définir origin et domains dans plugins.CapacitorPasskey dans capacitor.config.*.
  2. Exécutez bunx cap sync.
  3. Utilisez votre nom de package Android réel dans assetlinks.json.
  4. Ajoutez tous les empreintes de certificat de signature dont vous avez besoin, y compris les clés de signature de débogage ou de clés de signature interne si vous testez ces builds.
  5. Héberger le fichier sur le même domaine que celui utilisé pour l'ID de la partie qui s'appuie.

Différence importante de comportement par rapport à un navigateur

Section intitulée “Différence importante de comportement par rapport à un navigateur”

Lorsque les liens d'actif numérique sont configurés, Android peut utiliser la même partie qui s'appuie et les clés de passeport comme votre site web. La différence restante est l'origine littérale signalée dans le native clientDataJSON.

  • Une application Android normale ne se comporte pas comme un navigateur privilégié.
  • L'origine de l'assertion peut être liée à la signature de l'application Android au lieu de l'origine du site web.
  • Si votre serveur valide strictement clientDataJSON.origin, acceptez l'origine de l'application Android en plus de l'origine du site web.