REL-ID Verify flow

🧭 What Is the "Verify Auth" Challenge?

The Verify Auth Challenge is a key security mechanism in REL-ID SDK that allows a user to activate a new device by approving a verification request on an already registered (trusted) device.

It’s the REL-ID equivalent of “tap to approve this login” in multi-device ecosystems — but deeply integrated with REL-ID’s identity binding architecture.

This challenge can be configured in the Gateway manager.

📲 When Is It Used?

During additional device activation, after the user enters their login ID, the SDK recognizes this device is unregistered and triggers addNewDeviceOptions


🔁 What Happens Internally – Verify Auth Challenge

During additional device activation, when the user chooses REL-ID Verify Authentication, the following sequence of events takes place:

  1. 📱 New Device Calls: performVerifyAuth(true)

    • This triggers the start of the verify challenge.
  2. 📲 Registered Device Receives Notification

    • A push notification is sent to one of the user's previously registered devices.
  3. 🔔 User Action Required

    • The user must approve the request on the registered device within a predefined time window.
  4. ✅ If Approved:

    • REL-ID server acknowledges the approval.
    • New device is allowed to proceed to the next step (e.g., LDA Consent or Password).
  5. ❌ If Rejected or Timeout:

    • The new device receives a failure response.
    • App should prompt the user to retry or offer the fallback option using fallbackNewDeviceActivationFlow().

🪜 Step-by-Step Activation Flow

1. Login Attempt on New Device

  • SDK detects this is a new/unregistered device
  • Event triggered: addNewDeviceOptions

🔄 Options (from event payload)

  • "REL-ID Verify Authentication"
  • "Add New Device using Fallback"

📱 App Screen

  • Show challenge information from challengeInfo
  • Display buttons:
    • ✅ Proceed with REL-ID Verify → performVerifyAuth(true)
    • ❌ Use Fallback Method → fallbackNewDeviceActivationFlow()

3. User Chooses: REL-ID Verify

  • Notification sent to existing registered device
  • User approves the request

👉 On Success

  • SDK continues with:
    • getUserConsentForLDA (biometric)
    • or getPassword (fallback)

❌ On Failure

  • Show error message
  • Offer retry or fallback method

4. (Optional) Consent Collection

Event: getUserConsentForLDA

  • Show biometric or consent dialog

➡️ On success: continue to device binding

➡️ On failure: use fallback flow


5. Device Binding

  • SDK binds the device to the user's account

Event Triggered: getDeviceName


6. Event:getDeviceName

📱 App Screen

  • Prompt user to enter or confirm device name

🔧 API Call: setDeviceName(deviceName)

➡️ On success: proceed to final step

➡️ On failure: retry or use auto-generated name


7. Final Step: Device Activated

  • SDK confirms that device is registered and ready

📱 UI Action

  • Redirect to home/dashboard
  • Show success message

🛠 Alternate Path: Fallback Flow

API: fallbackNewDeviceActivationFlow()

  • Trigger alternate activation (OTP, passcode, QR, etc.)
  • On success: proceeds to getDeviceNamesetDeviceName

❗ Error Handling Summary

StepEvent/APIOn Failure Action
Option DisplayaddNewDeviceOptionsShow retry or fallback option
Notification ApprovalperformVerifyAuthRetry or fallback path
Biometric ConsentgetUserConsentForLDAUse password or fallback method
Device NamingsetDeviceNameRetry or use auto-generated name
Final ConfirmationonDeviceActivatedRetry / logout