javascript
javascript copied to clipboard
feat(clerk-expo): Support expo passkeys
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 testruns as expected. - [ ]
npm run buildruns 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: