Authenticate Cross-Device Session

After a cross-device session is successfully created, and sent to and fetched from another device, you can proceed with authenticating the end user.

Check the session’s type property to make sure it is configured for authentication.

To authenticate with the cross-device session, use the authenticateCrossDeviceSession method for Android, iOS or Flutter.

miraclTrust.authenticateCrossDeviceSession(
    crossDeviceSession = crossDeviceSession,
    user = user,
    pinProvider = pinProvider,
    resultHandler = ResultHandler { result ->
        when (result) {
            is MIRACLSuccess -> {
                // The cross-device session is authenticated.
            }

            is MIRACLError -> {
                // The cross-device session is not authenticated.
            }
        }
    }
)
val result = miraclTrust.authenticateCrossDeviceSession(
    crossDeviceSession = crossDeviceSession,
    user = user,
    pinProvider = pinProvider
)

when (result) {
    is MIRACLSuccess -> {
        // The cross-device session is authenticated.
    }

    is MIRACLError -> {
        // The cross-device session is not authenticated.
    }
}
miraclTrust.authenticateCrossDeviceSession(
    crossDeviceSession,
    user,
    pinProvider,
    result -> {
        if (result instanceof MIRACLSuccess) {
            // The cross-device session is authenticated.
        } else {
            // The cross-device session is not authenticated.
        }
    }
);
MIRACLTrust.getInstance().authenticateCrossDeviceSession(
    crossDeviceSession
    user: user
) { pinProcessor in
    // Here the user provides their current User ID's PIN code.
    pinProcessor(<#Provide your PIN here#>)
} completionHandler: { isAuthenticated, error in
    // Handle your authentication result here.
}
[[MIRACLTrust getInstance]
        authenticateCrossDeviceSession:crossDeviceSession
        user:user
        didRequestPinHandler:^(void (^ pinProcessor)(NSString *)) {
            // Here the user provides their current User ID's PIN code.
            pinProcessor(<#Provide your PIN here#>);
        } completionHandler:^(BOOL isAuthenticated, NSError * error) {
            // Handle your authentication result here.
        }];
try {
  await mcl.authenticateCrossDeviceSession(crossDeviceSession, userId, userPin);
} catch (err) {
  // Handle any potential errors
}

Callback:

mcl.authenticateCrossDeviceSession(
  crossDeviceSession,
  userId,
  userPin,
  function (err) {
    if (err) {
      // Handle any potential errors
    }
  },
);
try {
  await miraclTrust.authenticateCrossDeviceSession(crossDeviceSession, user, pin);
  // The cross-device session is authenticated.
} on AuthenticationException catch(e) {
  // Handle the exception here.
}