장치에서 테스트
Capacitor 앱을 다운로드한 후 QR __CAPGO_KEEP_1__를 스캔하세요.
@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 및 직접 APIdomains: 네이티브 구성 동기화 중에 패치하는 추가 의존자 호스트 이름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_statementsAndroid: 메타데이터 및 생성된 리소스 사용하는 매니페스트
자연스러운 설정은 여전히 웹사이트 신뢰 파일이 필요합니다.
플러그인은 앱 측의 작업을 줄이지만, 패스키는 여전히 의존성 도메인에 대한 웹사이트 신뢰 파일에 의존합니다. 여전히 다음을 호스팅해야합니다:
https://your-domain/.well-known/apple-app-site-associationhttps://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 앱 원본을 수락하도록 백엔드가 확인하십시오.
전체 참조
- GitHub: https://github.com/Cap-go/capacitor-passkey/
- 문서: /docs/plugins/passkey/
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 플러그인 구현 세부 사항