OutOfBandRegistration class abstract

The operation handling an out-of-band registration. This is the object returned by the SDK, when a OutOfBandPayload was processed and the OutOfBandPayload corresponds to a registration operation.

Usage example:

  class AuthenticatorSelectorImpl implements AuthenticatorSelector {
    @override
    void selectAuthenticator(
      AuthenticatorSelectionContext context,
      AuthenticatorSelectionHandler handler,
    ) {
      handler.aaid(aaid);
    }
  }

  class PinEnrollerImpl implements PinEnroller {
    @override
    void enrollPin(
      PinEnrollmentContext context,
      PinEnrollmentHandler handler,
    ) {
      handler.pin(pin);
    }
  }

  class PasswordEnrollerImpl implements PasswordEnroller {
    @override
    void enrollPassword(
      PasswordEnrollmentContext context,
      PasswordEnrollmentHandler handler,
    ) {
      handler.password(password);
    }
  }

  class BiometricUserVerifierImpl implements BiometricUserVerifier {
    @override
    void verifyBiometric(
      BiometricUserVerificationContext context,
      BiometricUserVerificationHandler handler,
    ) {
      handler.verifyBiometric();
    }
  }

  [...]
  Future<void> registerWithOutOfBand({
    required MobileAuthenticationClient client,
    required OutOfBandPayload payload,
    required DeviceInformation deviceInformation,
  }) async {
    await client.operations.outOfBandOperation
      .payload(payload)
      .onRegistration((registration) {
        registration
          .deviceInformation(deviceInformation)
          .authenticatorSelector(AuthenticatorSelectorImpl(...))
          .pinEnroller(PinEnrollerImpl(...))
          .passwordEnroller(PasswordEnrollerImpl(...))
          .biometricUserVerifier(BiometricUserVerifierImpl(...))
          .onSuccess(() {
            // handle success
          })
          .onError((error) {
            // handle error
          })
      })
      .onAuthentication((authentication) {
        // handle authentication
      })
      .onError((error) {
        // handle out-of-band error
      })
      .execute();
  }
  [...]

The biometric, device passcode and fingerprint authenticators are enrolled at the OS level. That is why, if one of them must be registered, the user must authenticate through BiometricUserVerifier, DevicePasscodeUserVerifier or FingerprintUserVerifier. In the case of the PIN and password, the credentials are enrolled during registration, so no authentication is needed.

See OutOfBandOperation.onRegistration

Inheritance

Constructors

OutOfBandRegistration()

Properties

hashCode → int
The hash code for this object.
no setterinherited
operationId ↔ String
The identifier of the encapsulating operation.
getter/setter pairinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

allowClass2AndroidSensors(bool allowClass2AndroidSensors) OutOfBandRegistration
Specifies whether Class 2 (formerly weak) biometric sensors are allowed if the biometric authenticator is selected.
allowDevicePasscodeAsFallback(bool allowDevicePasscodeAsFallback) OutOfBandRegistration
Specifies whether the OS device passcode can be used as fallback during biometric authentication.
authenticatorSelector(AuthenticatorSelector authenticatorSelector) OutOfBandRegistration
Specifies the object that will take care of the selection of the authenticator to be used.
biometricUserVerifier(BiometricUserVerifier biometricUserVerifier) OutOfBandRegistration
Specifies the object that will take care of the biometric user verification. It must be provided only if a biometric authenticator must be registered.
deviceInformation(DeviceInformation deviceInformation) OutOfBandRegistration
Specifies the device information to be used.
devicePasscodeUserVerifier(DevicePasscodeUserVerifier devicePasscodeUserVerifier) OutOfBandRegistration
Specifies the object that will take care of the device passcode user verification. It must be provided only if a device passcode authenticator must be registered.
execute() → Future<void>
Executes the operation asynchronously.
inherited
fingerprintUserVerifier(FingerprintUserVerifier fingerprintUserVerifier) OutOfBandRegistration
Specifies the object that will take care of the fingerprint user verification. It must be provided only if a fingerprint authenticator must be registered.
invalidateOnNewOsBiometrics(bool invalidateOnNewOsBiometrics) OutOfBandRegistration
Specifies whether the authenticator must be invalidated if the user adds new biometric credentials in the OS settings. If the authenticator has been invalidated, and you try to authenticate with it, an error with code FidoErrorCodeType.keyDisappearedPermanently will be returned by the authentication operation.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onError(dynamic onError(OperationError)) OutOfBandRegistration
Specifies the object that will be invoked if the registration failed.
onSuccess(Function onSuccess) OutOfBandRegistration
Specifies the object that will be invoked if the registration completed successfully.
passwordEnroller(PasswordEnroller passwordEnroller) OutOfBandRegistration
Specifies the object that will take care of enrolling the password of the authenticator. It must be provided only if a password authenticator must be registered.
pinEnroller(PinEnroller pinEnroller) OutOfBandRegistration
Specifies the object that will take care of enrolling the PIN of the authenticator. It must be provided only if a PIN authenticator must be registered.
requestHeaders(RequestHeaders requestHeaders) OutOfBandRegistration
Specifies the additional request headers that must be included in the HTTP requests sent by the operation.
inherited
setOperationId(String operationId) → void
Sets the identifier of the encapsulating operation.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited