﻿---
icon: plug
label: Integration Use Cases
order: 900
expanded: false
---

This section describes the integration use cases for VerifEye's Redirect.

## Use cases Verification setup

All the below examples use the following setup:
- Liveness Verifier in Verification mode
- Age Verifier in Threshold Verification mode (Above 18)
- Face Recognition Verifier in Calculation Only mode
- Gender Verifier in Calculation Only mode
- They use the same collection
- For testing purposes in this example we disabled `ForceSignedInput` — this is strongly recommended to keep enabled in production environments. For more details, see the [Security page](/redirect/security/#incoming-signed-verification-url-request-integrity).

## Use case: Full-page redirect

**When to use**

- simplest integration; users leave your site temporarily and come back via redirect

**How it works (conceptually)**

- you send the user to the VerifEye verification URL
- the user completes the verification
- VerifEye redirects the browser to your result URL with the outcome in the query string parameters

**Recommended**

- validate `reSignature` server-side to avoid result tampering

[!ref text="For more information about the signature, check out the Security page"](/redirect/security/)

**Example**

In this example we use the EU service.

- Verification URL: https://verifeye-service-eu.realeyes.ai/verification/e4fc930b-d780-47e3-ae4c-0d5d2f22e54e _(note: `ForceSignedInput` is disabled on this verification for testing — do not do this in production)_
- Target URL (configured for the Verification): https://example.com
- Result URL example (Target URL with the outcome for a specific session in the query string parameters): 

```
https://example.com/?reVerificationSessionId=7a429371-f918-4900-bf1b-14a76e551042&reFaceId=99a9e4e3ac75406ebd638f95bc4f0b30&reVerificationResult=passed&reLivenessResult=passed&reFaceRecognitionResult=passed&reAgeVerificationResult=passed&reAge=31&reGenderVerificationResult=passed&reGender=male&reSignature=70ac1eb0762395c831a09f53f854ca7e9745bf5755b83ed8137ed21dec9c7307           
```

[!ref text="Click here to try out" target="blank"](https://verifeye-service-eu.realeyes.ai/verification/e4fc930b-d780-47e3-ae4c-0d5d2f22e54e)

## Use case: Embedded iFrame

**When to use**

- you want the verification flow embedded in your page without full navigation

**How it works (conceptually)**

- you embed the hosted verification URL in an iFrame
- after completion, VerifEye navigates to a result page that posts a message to the parent window containing:
  - `redirectedTo`: the final result URL

**Recommended**

- validate `event.origin` on the host page
- validate `reSignature` on your backend if you need tamper detection

[!ref text="For more information about origin check and the signature, check out the Security page"](/redirect/security/)

**Example**

- Verification URL: https://verifeye-service-eu.realeyes.ai/verification/3bb1fb37-9d3a-423f-b5bc-1790a329f117 _(note: `ForceSignedInput` is disabled on this verification for testing — do not do this in production)_
- Target URL (configured for the Verification): https://verifeye-docs.realeyes.ai/iframe_popup_result_example.html
- Result URL example (Target URL with the outcome for a specific session in the query string parameters): 

```
https://verifeye-docs.realeyes.ai/iframe_popup_result_example.html?reVerificationSessionId=d7c09541-03c1-403e-9b3c-146468657f27&reFaceId=99a9e4e3ac75406ebd638f95bc4f0b30&reVerificationResult=passed&reLivenessResult=passed&reFaceRecognitionResult=passed&reAgeVerificationResult=passed&reAge=31&reGenderVerificationResult=passed&reGender=male&reSignature=462cfda7b1999f243867d5a2ab1725624ca7d85d807b7e8d3cb1f285648c0810
```

[!ref text="Click here to try out" target="blank"](/static/iframe_example.html)

The following file is a minimum example for how to use VerifEye iFrame integration

:::code source="/static/iframe_example.html" language="js" title="iframe_example.html" :::

This file shows what is set for the Target URL. This is a technical file that is responsible to receive the result query string parameters and send back the whole URL to the hosted site via `postMessage`.

:::code source="/static/iframe_popup_result_example.html" language="js" title="iframe_popup_result_example.html" :::


## Use case: Widget (Drop-in Snippet)

**When to use**

- for experiments and demos only — **not intended for production use**
- you want to quickly test or showcase the verification flow with minimal setup

**How it works (conceptually)**

- you add the widget `<script>` tag with `data-*` attributes to your page
- the script renders a checkbox labeled "Verify you are human"
- when the user clicks the checkbox, an iFrame modal opens for the verification flow
- after completion, the modal closes and the checkbox changes to "✓ Verified Human"
- results are available via a JavaScript callback (`onReVerifEyeResultCallback`) and global variables (`window.reVerifEye`)

**Required verification configuration**

For the widget to work correctly, the verification must be configured as follows:

- **Passed URL** must be set to `https://verifeye-service-{region}.realeyes.ai/verification_result.html` (e.g. `https://verifeye-service-eu.realeyes.ai/verification_result.html` for the EU region)
- **Include Verification Result** must be enabled in the Result Parameters

**Configuration attributes**

| Attribute | Required | Description |
|---|---|---|
| `data-verification-id` | Yes | Your Verification ID from the Developer Console |
| `data-target-element` | Yes | The `id` of the `<div>` where the widget renders |
| `data-region` | No | `eu` (default) or `us` |
| `data-signature` | No | Raw signature value (hex string) for verifications with **Force Signed Input** enabled. The widget appends it as `?reSignature=<value>` to the verification URL. Must be non-expiring. The Developer Console generates this automatically when you copy the snippet. |

**Result callback**

Define a global function `onReVerifEyeResultCallback` to receive the verification result:

```js
function onReVerifEyeResultCallback(result) {
  console.log(result.isSuccess);              // true or false
  console.log(result.age);                    // estimated age (number or null)
  console.log(result.gender);                 // "male" or "female" (or null)
  console.log(result.verificationSessionId);  // session UUID
  console.log(result.faceId);                 // face UUID
  console.log(result.result);                 // "passed" or "failed"
}
```

Results are also stored in `window.reVerifEye`:

```js
window.reVerifEye.age       // number or null
window.reVerifEye.gender    // string or null
window.reVerifEye.isSuccess // boolean or null
```

!!!note
Which fields are populated depends on the verifiers enabled in the verification configuration and which result parameters are included:

- `isSuccess` / `result` — requires **Include Verification Result** enabled
- `age` — requires **Age** verifier enabled and **Include Age** enabled
- `gender` — requires **Gender** verifier enabled and **Include Gender** enabled
- `verificationSessionId` — requires **Include Session ID** enabled
- `faceId` — requires **Include Face ID** enabled
!!!

!!!warning
This widget is intended for **experiments and demos only**. For production integrations, use the iFrame or Popup use case with server-side signature validation.
!!!

**Example**

[!ref text="Click here to try out" target="blank"](/static/widget_example.html)

The following snippet is all you need to add VerifEye to any page:

:::code source="/static/widget_example.html" language="html" title="widget_example.html" :::

**Generate a snippet from the Developer Console**

When you register a new account on the [VerifEye Developer Console](https://verifeye-console.realeyes.ai), a **Default** verification configuration is automatically created for you with the above settings pre-configured and **Force Signed Input disabled** — ready to use with the widget out of the box.

To generate a snippet, go to the [Verification Configurations](https://verifeye-console.realeyes.ai/my-configurations) page, click the **`</>`** (Code) icon on any configuration, and copy the snippet. If the selected verification has **Force Signed Input** enabled, the Developer Console automatically generates a non-expiring signature and includes it as `data-signature` in the snippet.


## Use case: Popup window

**When to use**

- you want to keep the host page intact and run verification in a separate window

**How it works (conceptually)**

- you open a popup to the hosted verification URL
- after completion, the popup navigates to the result page and posts a message to `window.opener` with:
  - `redirectedTo`: the final result URL
- and finally the popup window closes

**Recommended**

- handle popup blockers and provide a fallback
- validate `event.origin` on the host page
- validate `reSignature` on your backend if you need tamper detection

[!ref text="For more information about origin check and the signature, check out the Security page"](/redirect/security/)

**Example**

- Verification URL: https://verifeye-service-eu.realeyes.ai/verification/3bb1fb37-9d3a-423f-b5bc-1790a329f117 _(note: `ForceSignedInput` is disabled on this verification for testing — do not do this in production)_
- Target URL (configured for the Verification): https://verifeye-docs.realeyes.ai/iframe_popup_result_example.html
- Result URL example (Target URL with the outcome for a specific session in the query string parameters): 

```
https://verifeye-docs.realeyes.ai/iframe_popup_result_example.html?reVerificationSessionId=5048626a-8fb5-4116-bcdf-8754a85bba4a&reFaceId=99a9e4e3ac75406ebd638f95bc4f0b30&reVerificationResult=passed&reLivenessResult=passed&reFaceRecognitionResult=passed&reAgeVerificationResult=passed&reAge=31&reGenderVerificationResult=passed&reGender=male&reSignature=462cfda7b1999f243867d5a2ab1725624ca7d85d807b7e8d3cb1f285648c0810
```

[!ref text="Click here to try out" target="blank"](/static/popup_example.html)

The following file is a minimum example for how to use VerifEye Popup integration

:::code source="/static/popup_example.html" language="js" title="popup_example.html" :::

This file shows what is set for the Target URL. This is a technical file that is responsible to receive the result query string parameters and send back the whole URL to the hosted site via `postMessage`.

:::code source="/static/iframe_popup_result_example.html" language="js" title="iframe_popup_result_example.html" :::

---

*Last updated: 2026-05-28*

