@darkedges/capacitor-native-webauthn
v0.0.4
Published
This plugin gives access to the native webauthn / passkey apis for android/ios
Downloads
54
Maintainers
Readme
@darkedges/capacitor-native-webauthn
PassKey
Install
npm install @darkedges/capacitor-native-webauthn
npx cap sync
API
isWebAuthnAvailable()
isWebAuthnAutoFillAvailable()
startRegistration(...)
startAuthentication(...)
- Interfaces
- Type Aliases
isWebAuthnAvailable()
isWebAuthnAvailable() => Promise<{ value: boolean; }>
Returns: Promise<{ value: boolean; }>
isWebAuthnAutoFillAvailable()
isWebAuthnAutoFillAvailable() => Promise<{ value: boolean; }>
Returns: Promise<{ value: boolean; }>
startRegistration(...)
startRegistration(publicKeyCredentialCreationOptionsJSON: PublicKeyCredentialCreationOptionsJSON) => Promise<RegistrationResponseJSON>
| Param | Type |
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| publicKeyCredentialCreationOptionsJSON
| PublicKeyCredentialCreationOptionsJSON |
Returns: Promise<RegistrationResponseJSON>
startAuthentication(...)
startAuthentication(requestOptionsJSON: PublicKeyCredentialRequestOptionsJSON, useBrowserAutofill?: boolean | undefined) => Promise<AuthenticationResponseJSON>
| Param | Type |
| ------------------------ | ------------------------------------------------------------------------------------------------------- |
| requestOptionsJSON
| PublicKeyCredentialRequestOptionsJSON |
| useBrowserAutofill
| boolean |
Returns: Promise<AuthenticationResponseJSON>
Interfaces
RegistrationResponseJSON
A slightly-modified RegistrationCredential to simplify working with ArrayBuffers that are Base64URL-encoded in the browser so that they can be sent as JSON to the server.
https://w3c.github.io/webauthn/#dictdef-registrationresponsejson
| Prop | Type |
| ----------------------------- | ------------------------------------------------------------------------------------------------------- |
| id
| Base64URLString |
| rawId
| Base64URLString |
| response
| AuthenticatorAttestationResponseJSON |
| authenticatorAttachment
| AuthenticatorAttachment |
| clientExtensionResults
| AuthenticationExtensionsClientOutputs |
| type
| PublicKeyCredentialType |
AuthenticatorAttestationResponseJSON
A slightly-modified AuthenticatorAttestationResponse to simplify working with ArrayBuffers that are Base64URL-encoded in the browser so that they can be sent as JSON to the server.
https://w3c.github.io/webauthn/#dictdef-authenticatorattestationresponsejson
| Prop | Type |
| ------------------------ | --------------------------------------------------------------------------- |
| clientDataJSON
| Base64URLString |
| attestationObject
| Base64URLString |
| authenticatorData
| Base64URLString |
| transports
| AuthenticatorTransportFuture[] |
| publicKeyAlgorithm
| COSEAlgorithmIdentifier |
| publicKey
| Base64URLString |
AuthenticationExtensionsClientOutputs
| Prop | Type |
| ---------------------- | --------------------------------------------------------------------------------- |
| appid
| boolean |
| credProps
| CredentialPropertiesOutput |
| hmacCreateSecret
| boolean |
CredentialPropertiesOutput
| Prop | Type |
| -------- | -------------------- |
| rk
| boolean |
PublicKeyCredentialCreationOptionsJSON
A variant of PublicKeyCredentialCreationOptions suitable for JSON transmission to the browser to (eventually) get passed into navigator.credentials.create(...) in the browser.
This should eventually get replaced with official TypeScript DOM types when WebAuthn L3 types eventually make it into the language:
https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptionsjson
| Prop | Type |
| ---------------------------- | ----------------------------------------------------------------------------------------------------- |
| rp
| PublicKeyCredentialRpEntity |
| user
| PublicKeyCredentialUserEntityJSON |
| challenge
| Base64URLString |
| pubKeyCredParams
| PublicKeyCredentialParameters[] |
| timeout
| number |
| excludeCredentials
| PublicKeyCredentialDescriptorJSON[] |
| authenticatorSelection
| AuthenticatorSelectionCriteria |
| attestation
| AttestationConveyancePreference |
| extensions
| AuthenticationExtensionsClientInputs |
PublicKeyCredentialRpEntity
| Prop | Type |
| -------- | ------------------- |
| id
| string |
PublicKeyCredentialUserEntityJSON
https://w3c.github.io/webauthn/#dictdef-publickeycredentialuserentityjson
| Prop | Type |
| ----------------- | ------------------- |
| id
| string |
| name
| string |
| displayName
| string |
PublicKeyCredentialParameters
| Prop | Type |
| ---------- | --------------------------------------------------------------------------- |
| alg
| COSEAlgorithmIdentifier |
| type
| PublicKeyCredentialType |
PublicKeyCredentialDescriptorJSON
https://w3c.github.io/webauthn/#dictdef-publickeycredentialdescriptorjson
| Prop | Type |
| ---------------- | --------------------------------------------------------------------------- |
| id
| Base64URLString |
| type
| PublicKeyCredentialType |
| transports
| AuthenticatorTransportFuture[] |
AuthenticatorSelectionCriteria
| Prop | Type |
| ----------------------------- | ----------------------------------------------------------------------------------- |
| authenticatorAttachment
| AuthenticatorAttachment |
| requireResidentKey
| boolean |
| residentKey
| ResidentKeyRequirement |
| userVerification
| UserVerificationRequirement |
AuthenticationExtensionsClientInputs
| Prop | Type |
| ---------------------- | -------------------- |
| appid
| string |
| credProps
| boolean |
| hmacCreateSecret
| boolean |
AuthenticationResponseJSON
A slightly-modified AuthenticationCredential to simplify working with ArrayBuffers that are Base64URL-encoded in the browser so that they can be sent as JSON to the server.
https://w3c.github.io/webauthn/#dictdef-authenticationresponsejson
| Prop | Type |
| ----------------------------- | ------------------------------------------------------------------------------------------------------- |
| id
| Base64URLString |
| rawId
| Base64URLString |
| response
| AuthenticatorAssertionResponseJSON |
| authenticatorAttachment
| AuthenticatorAttachment |
| clientExtensionResults
| AuthenticationExtensionsClientOutputs |
| type
| PublicKeyCredentialType |
AuthenticatorAssertionResponseJSON
A slightly-modified AuthenticatorAssertionResponse to simplify working with ArrayBuffers that are Base64URL-encoded in the browser so that they can be sent as JSON to the server.
https://w3c.github.io/webauthn/#dictdef-authenticatorassertionresponsejson
| Prop | Type |
| ----------------------- | ----------------------------------------------------------- |
| clientDataJSON
| Base64URLString |
| authenticatorData
| Base64URLString |
| signature
| Base64URLString |
| userHandle
| string |
PublicKeyCredentialRequestOptionsJSON
A variant of PublicKeyCredentialRequestOptions suitable for JSON transmission to the browser to (eventually) get passed into navigator.credentials.get(...) in the browser.
| Prop | Type |
| ---------------------- | ----------------------------------------------------------------------------------------------------- |
| challenge
| Base64URLString |
| timeout
| number |
| rpId
| string |
| allowCredentials
| PublicKeyCredentialDescriptorJSON[] |
| userVerification
| UserVerificationRequirement |
| extensions
| AuthenticationExtensionsClientInputs |
Type Aliases
Base64URLString
An attempt to communicate that this isn't just any string, but a Base64URL-encoded string
string
AuthenticatorTransportFuture
A super class of TypeScript's AuthenticatorTransport
that includes support for the latest
transports. Should eventually be replaced by TypeScript's when TypeScript gets updated to
know about it (sometime after 4.6.3)
'ble' | 'cable' | 'hybrid' | 'internal' | 'nfc' | 'smart-card' | 'usb'
COSEAlgorithmIdentifier
number
AuthenticatorAttachment
"cross-platform" | "platform"
PublicKeyCredentialType
"public-key"
ResidentKeyRequirement
"discouraged" | "preferred" | "required"
UserVerificationRequirement
"discouraged" | "preferred" | "required"
AttestationConveyancePreference
"direct" | "enterprise" | "indirect" | "none"