Skip to content

Latest commit

 

History

History

react-native-passkey-stamper

@turnkey/react-native-passkey-stamper

npm

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

Installation

  • 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)

Usage

Create a new passkey

import { createPasskey } from "@turnkey/react-native-passkey-stamper";

// 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
    id: String(Date.now()),
    // ...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",
  },
});

Use an existing passkey

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(...)

Demo app

Head over to this repository for a fully functional React Native app built with Expo.