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

export const Login = () => {
const stytch = useStytch();

const trigger = useCallback(() => {
  stytch.webauthn.register({
    domain: 'example.com',
    is_passkey: true,
    session_duration_minutes: 60,
  });
}, [stytch]);

return (
  <View>
    <TouchableOpacity onPress={trigger}>
      <Text>Create WebAuthn Registration</Text>
    </TouchableOpacity>
  </View>
);
};
{
  "status_code": 200,
  "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
  "user_id": "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
  "webauthn_registration_id": "webauthn-registration-test-5c44cc6a-8af7-48d6-8da7-ea821342f5a6"
}
Wraps the register_start and register WebAuthn endpoints and the navigator.credentials web API. Call this method to prompt the user to enroll a new WebAuthn factor and save the factor in Stytch. Call webauthn.register inside an event callback triggered by a user gesture.
If a user has enrolled another MFA method, this method will require MFA. See the Multi-factor authentication section for more details.

Parameters

domain
string
The domain for Passkeys or WebAuthn. Defaults to window.location.hostname.
authenticator_type
string
The requested authenticator type of the Passkey or WebAuthn device. The two valid values are platform and cross-platform. If no value passed, we assume both values are allowed.
is_passkey
boolean
If true, the WebAuthn flow will be optimized for Passkeys by altering the public_key_credential_creation_options used.
override_id
string
The desired ID for the user key in the public_key_credential_creation_options response field. The default is the User’s ID.
override_name
string
The desired name for the user key in the public_key_credential_creation_options response field. The default is the User’s name, email, or phone number.
override_display_name
string
The desired display_name for the user key in the public_key_credential_creation_options response field. The default is the User’s name, email, or phone number.
use_base64_url_encoding
boolean
If true, will encode credentials using base64 URL encoding instead of base64 standard encoding. Defaults to false.
session_duration_minutes
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

webauthn_registration_id
string
The unique ID for the Passkey or WebAuthn registration.
user_id
string
The unique ID of the affected User.
user
object
The user object affected by this API call. See the Get user endpoint 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.