메인 콘텐츠로 건너뛰기
@capgo/capacitor-패스키 인증 및 보안 오픈 소스

패스키 Capacitor 플러그인

code를 브라우저 스타일의 WebAuthn Capacitor로 유지하면서 네이티브 패스키 키 호출과 호스트 패칭이 자동으로 처리됩니다.

설치

bun add @capgo/capacitor-passkey bunx cap sync
npm, pnpm 또는 yarn
  • npm install @capgo/capacitor-passkey
  • pnpm add @capgo/capacitor-passkey
  • yarn add @capgo/capacitor-passkey

장치에서 테스트

Capacitor 앱을 다운로드한 후 QR __CAPGO_KEEP_1__를 스캔하세요.

앱 스토어에서 __CAPGO_KEEP_0__ 다운로드

다운로드하여 Capgo 앱을 설치한 후 QR code 코드를 스캔하세요.

Passkey 플러그인 미리보기 QR code

@capgo/capacitor-passkey 사용

code을 Capacitor 앱에 브라우저 스타일의 WebAuthn code를 유지하고 플러그인은 네이티브 패스키 호출과 네이티브 호스트 패칭을 처리합니다.

브라우저 스타일 API

@capgo/capacitor-passkey __CAPGO_KEEP_0__은 웹에서 이미 사용하는 브라우저 스타일의 WebAuthn 흐름을 유지합니다:

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

네이티브 빌드에서 플러그인은 navigator.credentials.create() 그리고 navigator.credentials.get(), iOS와 Android 패스키 API로 요청을 전달하고 브라우저와 같은 자격 증명 객체를 반환하여 앱에 전달합니다.

설치 및 네이티브 프로젝트 동기화

bun add @capgo/capacitor-passkey
bunx cap sync

호스트 앱을 한번만 구성하세요

플러그인 구성 추가 capacitor.config.ts 또는 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;

플러그인 구성은 무엇을 수행하는가

설정은 __CAPGO_KEEP_0__에서 읽어집니다 plugins.CapacitorPasskey in capacitor.config.*.

  • origin: 주 HTTPS 의존자 원본을 shim 및 직접 API
  • domains: 네이티브 구성 동기화 중에 패치하는 추가 의존자 호스트 이름
  • autoShim: 기본값 true 그리고 네이티브 cap sync 자동 구성 hook을 제어합니다

설정 변경 후 다시 동기화 실행:

bunx cap sync

부트스트랩 시 임시 설치:

표준 패키지 엔트리 포인트에서 플러그인을 임포트하고 앱 부트스트랩 시 임시 설치:

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

await CapacitorPasskey.autoShimWebAuthn();

그 후, 기존 브라우저 스타일의 code 패스키가 그대로 유지됩니다.

런타임에서 임시 설치 또는 구성된 원본을 오버라이드해야 하는 경우 호출:

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

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

정상적인 WebAuthn 흐름 유지:

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

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

어떤 동기화 패치가 사용자에게 도움이 되는지:

During bunx cap synciOS: 필요할 때 Xcode 권한과 관련된 도메인 연관성 권한:

  • Android:
  • Android: asset_statements Android: 메타데이터 및 생성된 리소스 사용하는 매니페스트

자연스러운 설정은 여전히 웹사이트 신뢰 파일이 필요합니다.

플러그인은 앱 측의 작업을 줄이지만, 패스키는 여전히 의존성 도메인에 대한 웹사이트 신뢰 파일에 의존합니다. 여전히 다음을 호스팅해야합니다:

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

플러그인은 동기화 중에 생성된 네이티브 프로젝트를 패치할 수 있지만, 웹사이트 신뢰 파일을 생성하거나 호스팅할 수 없습니다.

기타 공개 메서드

공개 플러그인 API 또한 API에 정의된 직접 도우미를 노출합니다. src/definitions.ts:

  • await CapacitorPasskey.getConfiguration() JSON-안전한 WebAuthn 페이로드에서 해결된 패스키를 반환합니다. origin, domains, autoShim현재 platform.
  • await CapacitorPasskey.createCredential(...) JSON-안전한 WebAuthn 페이로드에서 존재하는 패스키와 인증합니다.
  • await CapacitorPasskey.getCredential(...) 현재 런타임이 패스키를 지원하는지 여부를 보고합니다.
  • await CapacitorPasskey.isSupported() 현재 네이티브 구현 버전 마커를 반환합니다.
  • await CapacitorPasskey.getPluginVersion() 플랫폼 가이드

설정

iOS 중요 참고

iOS 17.4 이상 버전에서 플러그인은 브라우저 스타일의 client-data API을 사용하여 구성된 HTTPS 원본이 반영됩니다. clientDataJSON.

Android 중요 주의

Android Credential Manager는 Digital Asset Links가 구성된 경우 웹사이트와 동일한 의존성 파트너와 패스키를 공유할 수 있지만, 네이티브 어설션 원본은 브라우저 원본과 동일하지 않습니다. 백엔드가 엄격하게 유효성을 검사하는 경우 clientDataJSON.origin웹사이트 원본과 함께 Android 앱 원본을 수락하도록 백엔드가 확인하십시오.

전체 참조

Capgo에서 @capgo/capacitor-passkey을 계속 사용하세요.

Capgo를 사용 중이라면 Capgo에서 @capgo/capacitor-passkey을 사용하세요. 인증 및 계정 흐름을 계획하고 연결하려면 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-passkey을 사용하세요. Capgo에서 @capgo/capacitor-passkey을 사용하여 구현 세부 정보를 확인하세요. for the implementation detail in @capgo/capacitor-passkey, Capgo에서 시작하기를 사용하여 구현 세부 정보를 확인하세요. Capgo에서 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-social-login을 사용하세요. Capgo에서 @capgo/capacitor-social-login을 사용하여 구현 세부 정보를 확인하세요. Capgo에서 @capgo/capacitor-native-biometric을 사용하세요. @capgo/capacitor-native-biometric for capgo capacitor-native-biometric 구현 세부사항에 대해 두 단계 인증 Capacitor-passkey 플러그인 구현 세부 사항

FAQ

Passkey 플러그인 FAQ

Passkey 플러그인을 Capacitor 앱에 설치하는 방법은 무엇입니까?

Run "bun add @capgo/capacitor-passkey" (또는 "npm install @capgo/capacitor-passkey")를 실행한 후, iOS와 Android 프로젝트가 네이티브 code를 인식하도록 "bunx cap sync"를 실행하세요. 그리고 앱 code에서 "@capgo/capacitor-passkey"를 임포트하세요.

React, Vue 및 Angular과 함께 @capgo/capacitor-passkey이 작동합니까?

네. Passkey은 Capacitor 패키지이므로 Ionic, React, Vue, Angular, Svelte 및 일반 JavaScript와 같은 Capacitor 내부에서 실행되는 모든 웹 프레임워크와 함께 작동합니다.

어떤 Capacitor 버전을 @capgo/capacitor-passkey이 지원합니까?

Capgo plugins follow Capacitor's major version: use the plugin major version that matches your Capacitor major version (for example plugin v8 with Capacitor 8). The compatibility table in the GitHub README lists the maintained versions.

어떤 capgo가 @capacitor/__CAPGO_KEEP_2__-passkey이 무료이고 오픈 소스입니까?

Yes. The source code is public on GitHub at https://github.com/Cap-go/capacitor-passkey/ and the package is free to install from npm. Bug reports and pull requests are welcome.

code가 Passkey을 사용하는 경우 App Store 리뷰 없이 업데이트할 수 있나요?

플러그인을 설치하거나 업그레이드하면 네이티브 code이 변경되므로 새로운 스토어 빌드를 필요로 합니다. 그 후에 JavaScript, HTML 및 CSS 변경 사항이 플러그인을 호출하는 경우 Capgo Live Update를 통해 즉시 배포할 수 있습니다.

앱 리뷰 대기 없이 Passkey 변경을 배포

Capgo

Capgo