LogoLogo
Useful links
  • Home
  • Product guides
  • API
  • SDKs
  • Overview
  • First steps
  • ANDROID
    • Getting Started with the SDK
    • Standalone Modules
      • Document Detector
        • Release Notes
        • Current Version
        • Requirements
        • Gradle Dependencies
        • Gradle Source Code
        • Setting up the SDK
          • Setting properties
          • Capture Stages
          • Messages Settings
          • Customization
          • Security Settings
          • Detection Steps
          • Upload Mode
          • Advanced Settings
            • Proxy configuration
            • Preview configuration
        • Start Document Detection
        • Source Code
        • Google security form
        • Reduce SDKs size
        • SDKs response
        • References
        • FAQ
      • Face Liveness
        • Release Notes
        • Current Version
        • Requirements
        • Gradle Dependencies
        • Gradle Source Code
        • SDK Lifecycle
        • Building the SDK
        • Start Liveness Verification
        • Source Code
        • References
        • Advanced Features
        • FAQ
      • Face Authenticator
        • Release Notes
      • Smart Auth
        • Release Notes
        • Current Version
        • Requirements
        • Gradle Dependencies
        • Gradle Source Code
        • Permissions
        • SDK Lifecycle
        • Building the SDK
        • Start Smart Authentication
        • Source Code
        • References
        • FAQ
      • Face Liveness (deprecated)
        • Release Notes
  • iOS
    • Getting Started with the SDK
    • Standalone Modules
      • Document Detector
        • Release Notes
        • Current Version
        • Requirements
        • Installing the SDK
        • Setting up the SDK
          • Setting properties
          • Messages Settings
          • Customization
          • Detection Steps
          • Upload Mode
          • Advanced Settings
            • Proxy configuration
            • Preview configuration
        • Start Document Detection
        • References
        • FAQ
      • Face Liveness
        • Release Notes
        • Installation
        • Current Version
        • Requirements
        • SDK Lifecycle
        • Building the SDK
        • Start Liveness Verification
        • Source Code
        • References
        • FAQ
      • Face Authenticator
        • Release Notes
        • Installation
        • Current Version
        • Requirements
        • Building the SDK
        • Start the SDK
        • References
        • FAQ
      • Smart Auth
        • Release Notes
        • Installation
        • Current Version
        • Requirements
        • SDK Lifecycle
        • Building the SDK
        • Start Smart Authentication
        • Source Code
        • References
        • FAQ
      • Face Liveness (deprecated)
        • Release Notes
  • REACT NATIVE
    • Standalone Modules
      • Document Detector
        • Release Notes
        • Current Version
        • Requirements
        • Installation
        • Hooks
        • Start Document Verification
        • Source Code
        • TypeScript References
        • Customizing Style
        • FAQ
      • Face Liveness
        • Release Notes
        • Current Version
        • Requirements
        • Installation
        • Hooks
        • Start Liveness Verification
        • Source Code
        • TypeScript References
        • FAQ
      • Face Authenticator
        • Release Notes
        • Current Version
        • Requirements
        • Installation
        • Hooks
        • Start Authentication Verification
        • Source Code
        • TypeScript References
        • FAQ
      • Smart Auth
        • Getting started
        • Release notes
        • Using Native Modules
          • Requirements
          • Gradle Source Code
          • Podfile Source Code
          • Native Module Android
          • Native Module iOS
          • Import Native Modules
          • Source Code
          • TypeScript References
          • FAQ
        • Using Expo Modules
          • Requirements
          • Create Local Expo Module
          • Gradle Source Code
          • Podspec Source Code
          • Native Module Android
          • Native Module iOS
          • Import Expo Modules
          • Source Code
          • TypeScript References
          • FAQ
  • WEB (JAVASCRIPT)
    • Standalone Modules
      • Document Detector
        • Getting started
        • SDK builder options
          • Analytics
          • Appearance
          • Messages
        • SDK methods
        • Event listeners
        • Customization
        • Release notes
      • Face Liveness
        • Customization
        • Release notes
      • Face Authenticator
        • Customization
        • Release notes
      • Smart Auth
        • SDK errors
        • Customization
        • Release notes
LogoLogo

2025 © Caf. - All rights reserved

On this page
  • Creating a CafSmartAuth SDK instance
  • Builder Properties
  • Builder Methods
  • Theme Configuration
  • Example
  1. iOS
  2. Standalone Modules
  3. Smart Auth

Building the SDK

Creating a CafSmartAuth SDK instance

To create a CafSmartAuth instance, use the CafBuilder class. This class provides a set of methods to configure the SDK instance.

Builder Properties

Property
Type
Description
Required

mobileToken

String

Mobile token provided by the platform.

✅

Builder Methods

Method
Type
Description
Required

setStage(_:)

CAFStage

Defines the environment stage (e.g., .prod, .beta). Default is .prod.

❌

setEmailURL(_:)

URL

Sets the email authentication URL. Must use HTTPS protocol.

❌

setPhoneURL(_:)

URL

Sets the phone authentication URL. Must use HTTPS protocol.

❌

setPlatform(_:)

CafSdkPlatform

Sets the platform on which the SDK is running. Default is .nativeIos.

❌

setLivenessSettings(_:)

CafFaceLivenessSettings

Sets the face liveness authentication settings.

❌

setThemeConfigurator(_:)

CafThemeConfigurator

Sets the theme configuration for the SDK. Customize appearance for light and dark modes.

❌

Theme Configuration

To customize the appearance of the SDK, use the theme configurator methods. Two structures are used for theme configuration: CafThemeConfigurator and CafTheme.

CafThemeConfigurator

public struct CafThemeConfigurator {
    public var lightTheme: CafTheme
    public var darkTheme: CafTheme

    public init(lightTheme: CafTheme = CafTheme(),
                darkTheme: CafTheme = CafTheme()) {
        self.lightTheme = lightTheme
        self.darkTheme = darkTheme
    }
}

This structure allows you to define separate themes for light and dark modes. Each theme is defined by a CafTheme structure.

public struct CafTheme {
    public var backgroundColor: UIColor
    public var textColor: UIColor
    public var linkColor: UIColor
    public var boxBorderColor: UIColor
    public var boxFilledBorderColor: UIColor
    public var boxBackgroundColor: UIColor
    public var boxFilledBackgroundColor: UIColor
    public var boxTextColor: UIColor
    public var progressColor: UIColor

    public init(backgroundColor: String = "#FFFFFF",
                textColor: String = "#FF000000",
                linkColor: String = "#004AF7",
                boxBorderColor: String = "#cbcbcb",
                boxFilledBorderColor: String = "#004AF7",
                boxBackgroundColor: String = "#D3D3D3",
                boxFilledBackgroundColor: String = "#D3D3D3",
                boxTextColor: String = "#004AF7",
                progressColor: String = "#004AF7") {
        self.backgroundColor = UIColor(hex: backgroundColor)
        self.textColor = UIColor(hex: textColor)
        self.linkColor = UIColor(hex: linkColor)
        self.boxBorderColor = UIColor(hex: boxBorderColor)
        self.boxFilledBorderColor = UIColor(hex: boxFilledBorderColor)
        self.boxBackgroundColor = UIColor(hex: boxBackgroundColor)
        self.boxFilledBackgroundColor = UIColor(hex: boxFilledBackgroundColor)
        self.boxTextColor = UIColor(hex: boxTextColor)
        self.progressColor = UIColor(hex: progressColor)
    }
}

This structure defines various appearance attributes for the SDK. You can customize colors for backgrounds, text, links, borders, and progress indicators by providing hex string values.

Example

import CafSmartAuth

let smartAuth: CafSmartAuthSdk?

private func setupCafSmartAuth() {
    smartAuth = CafSmartAuthSdk.CafBuilder(mobileToken: "myMFAToken")
        .setStage(.prod)
        .setEmailURL(URL(string: "https://myEmailUrl.com")) // Not mandatory
        .setPhoneURL(URL(string: "https://myPhoneUrl.com")) // Not mandatory
        .setLivenessSettings(
            CafFaceLivenessSettings(
                faceLivenessToken: "myFaceAuthToken",
                useLoadingScreen: false,
                filter: .lineDrawing
            )
        )
        .setThemeConfigurator(
            CafThemeConfigurator(
                lightTheme: CafTheme(
                    backgroundColor: "#FFFFFF",
                    textColor: "#000000"
                ),
                darkTheme: CafTheme(
                    backgroundColor: "#000000",
                    textColor: "#FFFFFF"
                )
            )
        )
        .build()
}

Last updated 2 months ago