Passkey stamper for React Native
npm install @turnkey/react-native-passkey-stamper
This package contains a React Native passkey stamper. It uses react-native-passkey to do the heavy lifting. This stamper is meant to be used with @turnkey/http
- Install both react-native-passkey and @turnkey/react-native-passkey-stamper (this package) in your React Native project.
- Set up provisioning correctly to make sure your app is signed (needed for passkey functionality)
- Serve an apple-app-site-association file from your domain to reference your application. See more details here
- Add a new "Associated Domains" capability for web credentials (webcredentials:your.site.com)
``ts
import { createPasskey } from "@turnkey/react-native-passkey-stamper";
import { v4 as uuidv4 } from "uuid";
// Returns authenticator params that can be used with sub-org creation, user creation, etc.
const authenticatorParams = await createPasskey({
// Won't be visible to users, this is the name of the Turnkey resource
authenticatorName: "End-User Passkey",
rp: {
id: "your.site.com",
name: "Your App",
},
user: {
// This ID isn't visible to users
// NOTE: For Android, this must be a valid base64-encoded string
id: uuidv4(),
// ...but name and display names are. This is what's shown in the passkey prompt
name: "Some Name",
// displayName should be the same as "name"
displayName: "Some Name",
},
});
`
`ts
import { PasskeyStamper } from "@turnkey/react-native-passkey-stamper";
import { TurnkeyClient } from "@turnkey/http";
const stamper = new PasskeyStamper({
rpId: "your.site.com",
});
// New HTTP client able to sign with passkeys!
const httpClient = new TurnkeyClient(
{ baseUrl: "https://api.turnkey.com" },
stamper
);
// Now, send authenticated requests
httpClient.signTransaction(...)
``
Head over to this repository for a fully functional React Native app built with Expo.