Skip to main content
import React, { useCallback } from 'react';
import { Text, TouchableOpacity, View } from 'react-native';
import { useStytch, useStytchSession } from '@stytch/react-native';

export const Register = () => {
  const stytch = useStytch();
  const { session } = useStytchSession();

  const registerBiometrics = useCallback(() => {
    if (session) {
      stytch.biometrics.register({
        prompt: 'Register Your Biometric Factor',
      });
    }
  }, [session, stytch.biometrics]);

  return (
    <View>
      <TouchableOpacity onPress={registerBiometrics}>
        <Text>Register with Biometrics</Text>
      </TouchableOpacity>
    </View>
  );
};
Call this method to add a biometric registration for the current user. If an active session is present, this method will add a biometric registration for the current user. The user will later be able to start a new session with biometrics or use biometrics as an additional authentication factor.

Parameters

prompt
string
required
The text rendered when raising the biometric prompt.
cancelButtonText
string
The text rendered on the cancel button when raising the biometric prompt. Defaults to “Cancel”.
allowDeviceCredentials
boolean
Allows user to enter their device credentials (e.g. PIN code) as a fallback for failed biometric authentication. If this is set to false on registration, authentication will not be allowed to enable fallback to device credentials.
allowFallbackToCleartext
boolean
Allows Android devices without access to Keystore to register biometrics. The private key data will be stored as cleartext in the application sandbox. Learn more about the security implications of this behavior in the Android Keystore considerations section.
sessionDurationMinutes
int
Set the session lifetime to be this many minutes from now. This will start a new session if one doesn’t already exist, returning both an opaque session_token and session_jwt for this session. Remember that the session_jwt will have a fixed lifetime of five minutes regardless of the underlying session duration, and will need to be refreshed over time. This value must be a minimum of 5 and a maximum of 527040 minutes (366 days). If a session_token or session_jwt is provided then a successful authentication will continue to extend the session this many minutes. If the session_duration_minutes parameter is not specified, a Stytch session will not be created.

Response

user_id
string
The unique ID of the affected User.
user
object
The user object affected by call. See the User object for complete response field details.
session_token
string
A secret token for a given Stytch Session.
session_jwt
string
The JSON Web Token (JWT) for a given Stytch Session.
session
object
If you initiate a Session, by including session_duration_minutes in your authenticate call, you’ll receive a full Session object in the response. See Session object for complete response fields.
user_device
object
If Protected Auth is enabled and returned fingerprinting results, the user_device response field will contain information about the user’s device attributes.
request_id
string
Globally unique UUID that is returned with every API call. This value is important to log for debugging purposes; we may ask for this value to help identify a specific API call when helping you debug an issue.
status_code
number
The HTTP status code of the response. Stytch follows standard HTTP response status code patterns, e.g. 2XX values equate to success, 3XX values are redirects, 4XX are client errors, and 5XX are server errors.