sdk-integration-full-example
Full Example
Integrate SDK
import {
VerifiedClientSdk,
SdkResult,
SdkEvent,
SdkError,
SdkResultValues,
SdkEventValues,
SdkErrorReasons,
} from '@verifiedinc-public/client-sdk';
// Initialize the SDK
const sdk = new VerifiedClientSdk({
sessionKey: 'YOUR_SESSION_KEY',
onResult: handleResult,
onError: handleError,
onEvent: handleEvent,
});
// Handle successful results
function handleResult(data: SdkResult) {
switch (data.type) {
case SdkResultValues.USER_SHARED_CREDENTIALS: // 1-Click Signup success!
// Pass data.identityUuid to server (to call GET /1-click/{identityUuid})
break;
// Only for 1-Click Health
// case SdkResultValues.USER_SHARED_HEALTH_DATA: // 1-Click Health success!
// // Pass data.healthDataUuid to server (to call GET /1-click/health/{healthDataUuid})
// break;
case SdkResultValues.USER_OPTED_OUT: // User clicked 'Sign Up Manually Instead'
// Take user to manual signup flow
break;
case SdkResultValues.NO_CREDENTIALS_FOUND: // No signup data found (OCE013 Verified error code)
// Take user to manual signup flow. Additional metadata may be available.
break;
// Only for 1-Click Health
// case SdkResultValues.NO_INSURANCE_FOUND: // No health insurance data found
// // Take user to manual health insurance flow
// break;
case SdkResultValues.RISK_SCORE_TOO_HIGH: // OCE017 Verified error code
// Take user to manual signup flow. Additional metadata may be available.
break;
case SdkResultValues.MAX_INPUT_ATTEMPTS_EXCEEDED: // OCE019 Verified error code
// Take user to manual signup flow. Additional metadata may be available.
break;
case SdkResultValues.MAX_VERIFICATION_CODE_ATTEMPTS_EXCEEDED: // User tried verification code too many times
// Take user to manual signup flow. Additional metadata may be available.
break;
}
}
// Handle errors
function handleError(error: SdkError) {
console.error('SDK error:', error.reason);
switch (error.reason) {
case SdkErrorReasons.INVALID_SESSION_KEY:
// Call POST /sessionKey on server to get a new session key
break;
case SdkErrorReasons.SESSION_TIMEOUT:
// Call POST /sessionKey on server and create new VerifiedClientSdk instance
break;
case SdkErrorReasons.SHARE_CREDENTIALS_ERROR:
// Handle credential sharing error
break;
}
}
// Handle intermediary events
function handleEvent(event: SdkEvent) {
// metadata is always available
console.log(event.metadata);
switch (event.type) {
case SdkEventValues.SDK_READY:
// SDK rendered content for the user
break;
case SdkEventValues.USER_STEP_CHANGE:
// User navigated to a new step
console.log(event.step, event.previousStep);
break;
case SdkEventValues.STEP_TIME_SPENT:
// User left a step, includes duration
console.log(event.step, event.durationMs);
break;
case SdkEventValues.USER_COMPLETED_PRODUCT:
// User completed a product flow
console.log(event.product);
break;
case SdkEventValues.ONE_CLICK_SIGNUP_FORM_SUBMITTED:
// User submitted signup form
console.log(event.form);
break;
case SdkEventValues.ONE_CLICK_HEALTH_FORM_SUBMITTED: // Only for 1-Click Health
// User submitted health form
console.log(event.form);
break;
}
}
// Display the SDK in your application
sdk.show(document.getElementById('sdk-container') as HTMLElement);