컨텐츠로 건너뛰기

백엔드 참고

백엔드가 정상적인 WebAuthn 절차를 소유합니다.

  • 등록 및 인증 챌린지 생성
  • 증명 및 진술 응답 검증
  • 존재하는 파티 ID 및 챌린지 검증 강제
  • 브라우저 흐름과 동일한 방식으로 자격 증명 및 카운터를 저장합니다.

어떤 것이 동일하게 남아 있는가

‘어떤 것이 동일하게 남아 있는가’라는 제목

플러그인은 existing WebAuthn code의 프론트 엔드 형태를 보존하기 위해 설계되었습니다.

  • 웹에서 실제 브라우저 WebAuthn API로 전달합니다.
  • native Capacitor에서 브라우저와 같은 자격 증명 객체를 반환합니다. 이는 native passkey API에 의해 지원됩니다.
  • 백엔드에서는 동일한 challenge 및 verification pipeline을 유지할 수 있습니다.

Android에서 변경되는 사항

Android에서 변경되는 사항

Android native passkey는 브라우저의 신뢰 모델과 동일하지 않습니다.

  • 디지털 자산 링크를 통해 Android는 동일한 의존 파티와 자격 증명 생태계를 웹사이트와 공유할 수 있습니다.
  • literal clientDataJSON.origin 웹사이트의 원본과 달리 값은 여전히 다를 수 있습니다.
  • 서버가 https://your-domain를 제외한 모든 것을 거부한다면
권장 백엔드 규칙

웹 브라우저와 Android 앱의 기대되는 원본을 동일한 의존성 제공자에 대해 지원할 때 native Android passkey를 허용합니다.

그것은 다음과 같은 것을 제공합니다.

  • 웹 사이트에 대한 브라우저 지원
  • Capacitor 앱에 대한 native passkey 지원
  • 동일한 의존성 제공자 도메인에 대한 동일한 passkey 생태계

백엔드가 이미 반환하는 경우 PublicKeyCredentialCreationOptionsJSON 그리고 PublicKeyCredentialRequestOptionsJSON직접 플러그인 API을 사용하는 대신 브라우저 스타일의 shim 대신 사용할 수 있습니다.

import { CapacitorPasskey } from '@capgo/capacitor-passkey';
const registration = await CapacitorPasskey.createCredential({
origin: 'https://signin.example.com',
publicKey: registrationOptionsFromBackend,
});
const authentication = await CapacitorPasskey.getCredential({
origin: 'https://signin.example.com',
publicKey: requestOptionsFromBackend,
});