javascript icon indicating copy to clipboard operation
javascript copied to clipboard

feat(clerk-expo): Support expo passkeys

Open AlexNti opened this issue 1 year ago • 14 comments

Description

🔐 This PR introduces passkey support for Expo iOS, Android, and Web. 🚀

🛠 Usage

To enable passkeys in your Expo project, update your ClerkProvider as follows:

import { ClerkProvider } from '@clerk/clerk-expo';
import { passkeys } from '@clerk/clerk-expo/passkeys';

<ClerkProvider passkeys={passkeys}>
  {/* Your app here */}
</ClerkProvider>

🔑 Creating a Passkey

const { user } = useUser();

const handleCreatePasskey = async () => {
  if (!user) return;
  try {
    return await user.createPasskey();
  } catch (e: any) {
    // handle error
  }
};

🔓 Authenticating with a Passkey

const { signIn, setActive } = useSignIn();

const handlePasskeySignIn = async () => {
  try {
    const signInResponse = await signIn.authenticateWithPasskey();
    await setActive({ session: signInResponse.createdSessionId });
  } catch (err: any) {
    // handle error
  }
};

Checklist

  • [ ] npm test runs as expected.
  • [ ] npm run build runs as expected.
  • [ ] (If applicable) JSDoc comments have been added or updated for any package exports
  • [ ] (If applicable) Documentation has been updated

Type of change

  • [ ] 🐛 Bug fix
  • [x] 🌟 New feature
  • [ ] 🔨 Breaking change
  • [ ] 📖 Refactoring / dependency upgrade / documentation
  • [ ] other:

AlexNti avatar Oct 17 '24 15:10 AlexNti