Native passkeys for Expo apps
Add passkey registration and sign-in without leaving Expo.
Expo Easy Passkey gives app developers a small TypeScript API over iOS AuthenticationServices and Android Credential Manager. Your app runs the native ceremony. Your server verifies the WebAuthn JSON.
import {
authenticateWithPasskey,
createPasskey,
getPasskeyAvailability,
} from "expo-easy-passkey";
const availability = getPasskeyAvailability();
if (availability.supported) {
const options = await fetchRegistrationOptions();
const credential = await createPasskey(options);
await verifyRegistration(credential);
const request = await fetchAuthenticationOptions();
const assertion = await authenticateWithPasskey(request);
await verifyAuthentication(assertion);
}Install
Install the packages, configure the plugin, and build a dev client.
Platforms
Host AASA and Digital Asset Links files for your relying-party domain.
Server
Connect the app ceremony to challenge and verification endpoints.
Examples
Copy app-side recipes for registration, sign-in, fallback UI, and errors.