__CAPGO_KEEP_0__ home
Volver a plugins
@capgo/capacitor-passkey
Tutoriales
@capgo/capacitor-passkey

Icono del plugin de passkey

Mantén el autenticación de WebAuthn estilo de navegador code en Capacitor mientras se manejan llamadas de llave de acceso nativa y parches de host para usted

Guía

Tutorial sobre la llave de acceso

Prueba en dispositivo

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

Enlace QR de vista previa del complemento de passkey code

Usando @capgo/capacitor-passkey

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

Estilo de navegador 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 complemento instala un shim para navigator.credentials.create() y navigator.credentials.get()Envía la solicitud a las APIs de claves de iOS y Android y devuelve objetos de credenciales de navegador a tu aplicación.

Instala y sincroniza proyectos nativos

bun add @capgo/capacitor-passkey
bunx cap sync

Configura la aplicación de host una vez

Agrega 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 de plugins.CapacitorPasskey en capacitor.config.*.

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

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

bunx cap sync

Instala el shim durante el arranque

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

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

await CapacitorPasskey.autoShimWebAuthn();

Después de eso, tu existente code de clave de navegador puede seguir siendo el mismo.

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

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

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

Mantén tu flujo normal de autenticación de WebAuthn

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 sync, el plugin actualiza los proyectos de anfitrión nativo 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 partido 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 nativos generados durante la sincronización, pero no puede crear ni alojar esos archivos de confianza de sitio web para usted.

Otros métodos públicos

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 paso a partir de un payload WebAuthn seguro JSON.
  • await CapacitorPasskey.getCredential(...) autentica con una clave de paso existente a partir de un payload WebAuthn seguro JSON.
  • await CapacitorPasskey.isSupported() informa si el entorno de ejecución actual admite claves de paso.
  • await CapacitorPasskey.getPluginVersion() devuelve la versión actual del marcador de implementación nativa.

Guías de plataforma

Nota importante de iOS

En iOS 17.4 y versiones 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 confiable 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 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

Sigue adelante desde Usando @capgo/capacitor-passkey

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