Saltar al contenido principal
Volver a plugins
@capgo/capacitor-passkey
Tutorial
@capgo/capacitor-passkey

Passkey

Mantén el estilo de navegador de WebAuthn code en Capacitor mientras se manejan las llamadas de passkey nativas y la parcheo del host por tu cuenta

Guía

Tutoriales sobre Passkey

Probar en dispositivo

Descargar la aplicación Capgo, luego escanea el código QR code.

Enlace QR de vista previa del plugin de passkey code

Usando @capgo/capacitor-passkey

Mantenga su estilo de navegador de WebAuthn code en una aplicación Capacitor mientras el plugin gestiona llamadas de passkey nativas y parches de host nativos.

Browser-style API

@capgo/capacitor-passkey mantiene el mismo flujo de WebAuthn que ya utiliza en la web:

await navigator.credentials.create({ publicKey: registrationOptions });
await navigator.credentials.get({ publicKey: requestOptions });

En compilaciones nativas, el plugin instala un shim para navigator.credentials.create() y navigator.credentials.get()envía la solicitud a las API de passkey de iOS y Android, y devuelve objetos de credenciales como en un navegador a su aplicación.

Instale y sincronice proyectos nativos

bun add @capgo/capacitor-passkey
bunx cap sync

Configure la aplicación de host una vez

Agregar la configuración del plugin en capacitor.config.ts o capacitor.config.json:

import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'app.capgo.passkey.example',
  appName: 'My App',
  webDir: 'dist',
  plugins: {
    CapacitorPasskey: {
      origin: 'https://signin.example.com',
      autoShim: true,
      domains: ['signin.example.com'],
    },
  },
};

export default config;

¿Qué hace la configuración del plugin?

La configuración se lee desde plugins.CapacitorPasskey en capacitor.config.*.

  • origin: origen HTTPS de confianza principal utilizado por el shim y directo API
  • domains: nombres de host de confianza adicionales para parchear en la configuración nativa durante la sincronización
  • autoShim: predeterminado a true y controla la configuración nativa cap sync la pata de configuración automática

Ejecutar la sincronización nuevamente después de cambiar la configuración:

bunx cap sync

Instalar el shim durante el arranque

Importar el plugin desde el punto de entrada de paquete estándar, luego instalar el shim durante el arranque de la aplicación:

import { CapacitorPasskey } from '@capgo/capacitor-passkey';

await CapacitorPasskey.autoShimWebAuthn();

Después de eso, su existente code de la clave de navegador puede permanecer igual.

Si necesita forzar el shim o sobreescribir el origen configurado en tiempo de ejecución, llame a:

import { CapacitorPasskey } from '@capgo/capacitor-passkey';

CapacitorPasskey.shimWebAuthn({
  origin: 'https://signin.example.com',
});

Mantén tu flujo WebAuthn normal

const credential = await navigator.credentials.create({
  publicKey: registrationOptions,
});

const assertion = await navigator.credentials.get({
  publicKey: requestOptions,
});

¿Qué parches de sincronización para ti?

Durante bunx cap syncMientras tanto, el plugin actualiza los proyectos de anfitrión nativos generados:

  • iOS: permisos de dominios asociados y configuración de permisos de Xcode cuando sea necesario
  • Android: asset_statements metadatos y el recurso generado utilizado por el manifiesto

La configuración nativa todavía necesita archivos de confianza de sitio web

El plugin reduce el trabajo en el lado de la aplicación, pero las claves de paso todavía dependen de los archivos de confianza de sitio web para su dominio de parte de confianza. Todavía necesita alojar:

  • https://your-domain/.well-known/apple-app-site-association
  • https://your-domain/.well-known/assetlinks.json

El plugin puede parchear los proyectos de anfitrión nativos generados durante la sincronización, pero no puede crear ni alojar esos archivos de confianza de sitio web para usted.

Métodos públicos adicionales

El plugin público API también expone los ayudantes directos definidos en src/definitions.ts:

  • await CapacitorPasskey.getConfiguration() devuelve la resolución origin, domains, autoShim, y actual platform.
  • await CapacitorPasskey.createCredential(...) registra una clave de acceso a partir de un payload WebAuthn seguro JSON.
  • await CapacitorPasskey.getCredential(...) autentica con una clave de acceso existente a partir de un payload WebAuthn seguro JSON.
  • await CapacitorPasskey.isSupported() informa si el entorno de ejecución actual admite claves de acceso.
  • await CapacitorPasskey.getPluginVersion() devuelve la marca de versión de implementación nativa actual.

Guías de plataforma

Nota importante de iOS

En iOS 17.4 y posteriores, el complemento utiliza el cliente de datos estilo navegador API por lo que el origen HTTPS configurado se refleja en clientDataJSON.

Caveata importante de Android

El Administrador de credenciales de Android puede compartir la misma parte interesada y claves de acceso como su sitio web cuando se configuran los enlaces de activos digitales, pero el origen de la afirmación nativa no es idéntico a un origen de navegador. Si su servidor de backend valida estrictamente clientDataJSON.originAsegúrese de que acepte el origen de la aplicación de Android junto con el origen de su sitio web.

Referencia completa

Siga adelante desde Usando @capgo/capacitor-passkey

Si está utilizando Usando @capgo/capacitor-passkey para planificar la autenticación y los flujos de cuenta, conecte con @capgo/capacitor-passkey para los detalles de implementación en @capgo/capacitor-passkey Iniciación para los detalles de implementación en Iniciación @capgo/capacitor-social-login para los detalles de implementación en @capgo/capacitor-social-login @capgo/capacitor-native-biometric para los detalles de implementación en @capgo/capacitor-native-biometric, y Autenticación en dos factores para los detalles de implementación en Autenticación en dos factores