Adding Face ID and Touch ID to a React Native app sounds like a single API call. It isn't. There are three pieces you have to wire together: Keychain for storage, the biometric prompt for the user gate, and your auth code for what to do with the result. react-native-keychain handles the first two well. This post is about wiring all three.
I'll walk through the mental model, a storage pattern that's served me well, the configuration flags that matter, and how to deal with the prompt errors you'll see in production.
The mental model
Biometrics on mobile aren't a separate API. They're a gate on storage.
Keychain (iOS) and Keystore (Android) are key/value stores. The values live in hardware-backed secure storage on each platform. react-native-keychain exposes them with setGenericPassword and getGenericPassword . That's it.
The "biometric login" part is configuration on those two calls. When you write a value, you mark it as biometric-protected.…