Passkeys support for Expo
- Category
- SDK
- Published
Enable seamless, passwordless authentication in your Expo apps with Passkeys.
We're excited to announce native Passkeys support for Clerk's Expo SDK.
Implementation
Adding Passkeys support to your Expo app is straightforward using the user.createPasskey()
method from useUser()
hook and the signIn.authenticateWithPasskey()
method from useSignIn()
hook.
Create a Passkey
const CreatePasskeyPage = () => {
const { user } = useUser()
const handlePasskeySignIn = async () => {
if (!user) return
try {
return await user.createPasskey()
} catch (e: any) {
// Handle errors
}
}
}
const SignInWithPasskeyPage = () => {
const { signIn } = useSignIn()
const handlePasskeySignIn = async () => {
try {
const signInAttempt = await signIn?.authenticateWithPasskey({
flow: 'discoverable',
})
if (signInAttempt?.status === 'complete') {
await setActive({ session: signInAttempt.createdSessionId })
router.push('/')
} else {
// Handle errors
}
} catch (err) {
// Handle errors
}
}
}
Getting Started
To implement Passkeys in your Expo application:
- Enable Passkeys in your Clerk Dashboard
- Follow our Passkeys integration guide for detailed setup instructions
Platform Support
- iOS 16.0 or later
- Android 9+ or later
Visit our documentation to learn more about implementing Passkeys in your Expo application.