The Keyless SDK "caches" the enrolled user locally on the device.
There are some use cases where it is possible to delete the user from server API and delete the device from server API. The Keyless SDK will not be notified about such deletions. For this reason if you try to authenticate a user or a device that have been deleted from server API you will get an error.
Call validateUserAndDeviceActivebefore authenticating, to validate that both the user and the device are still active in the Keyless backend, to avoid asking the user for biometric data which will still not let them authenticate.
Keyless.validateUserAndDeviceActive( onCompletion = { result ->when (result) {is Keyless.KeylessResult.Success -> Log.d("KeylessSDK ", "user and device active") is Keyless.KeylessResult.Failure -> Log.d("KeylessSDK ", "user or device not ofund - error code ${result.error.code}")
// error code 1131 = user is not enrolled on the device (not even locally so did not check on backend)// error code 534 = user not found or deactivated on backend// error code 535 = device not found or deactivated on backend } })
Keyless.validateUserDeviceActive( onCompletion: { result inswitch result {case .success(let success): print("user and device active")case .failure(let error): print("user or device deactivated")// error code 1131 = user is not enrolled on the device (not even locally so did not check on backend)// error code 534 = user not found or deactivated on backend// error code 535 = device not found or deactivated on backendbreak } })
User identifier
Retrieve the user identifier with Keyless.getUserId():
Resetting the Keyless SDK to a clean state deletes local data from the device, but does not de-enoll the user from the Keyless backend or deactivate the device from the Keyless backend: