# Face Login

Face Login authenticates an existing user by capturing their face and matching it against an enrolled identity. Use it to grant access to your app, authorize high-value operations, or re-verify a returning user with low friction.

Face Login requires an approved customer with an enrolled face. There are two modes:

- **1:1 Face Login** compares the captured face against a specific user's enrolled face. Use this when you already know which user is logging in.
- **1:N Face Login** searches the captured face against all enrolled users in the database. Use this when you want to identify the user from their face alone.

For the full set of `startFaceLogin` parameters and the response shape, see [API Reference](react-native-api-reference.md).

## Face Login 1:1

Use 1:1 Face Login when you already have the user's `customerUUID`.
If the user was approved during onboarding on the mobile device, you should have received `customerUUID` from the `Approve` step.

```ts
const result = await IncodeSdk.startFaceLogin({
  showTutorials: true,
  customerUUID: 'CUSTOMER_UUID',
  faceMaskCheck: false,
  lensesCheck: false,
  logAuthenticationEnabled: false,
  e2eeEncryptionEnabled: false,
});
```

## Face Login 1:N

Use 1:N Face Login when you want the SDK to search for the captured face in the enrolled database. Omit `customerUUID`.

```ts
const result = await IncodeSdk.startFaceLogin({
  showTutorials: true,
  faceMaskCheck: false,
  lensesCheck: false,
  logAuthenticationEnabled: false,
  e2eeEncryptionEnabled: false,
});
```

## Face mask check dependency

To use `faceMaskCheck` on Android, add the mask detection model dependency:

```gradle
implementation 'com.incode.sdk:model-mask-detection:2.0.0'
```

On iOS, `faceMaskCheck` works without any additional dependency.
