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
mobileToken
String
Mobile token provided by the platform.
✅
Builder Methods
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