Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 25 Next »

📁 Table of Contents


ℹī¸ Introduction

The current flow only allows using the SDK by installing it through npm or using it as a script.


đŸ”ĸ Latest version

v1.0.6


đŸšĨ Compatibility

  • đŸŸĸ Supported: Only for web browsers (Chrome, Firefox, Safari, Edge etc.).

  • 🔴 Not supported: WebView, Native application languages like React-Native, Flutter etc. For that, please refer to Mobile SDK.


📂 How to install?

SDK flow explained in a sandbox environment:

  • 2 ways how to use IDV SDK.

    1. npm - @Ondato-public/idv-sdk

    2. Add script to an application  <script src="build/index.1.x.x.min.js"></script>

  • SDK can be used by generating idv ID or using idv setupId(idv id is generated automatically)


🔀 Flows explained

  • Customize the script with the following required properties:

    • IdvSdk.load({
                mode: IdvSdkMode.Sandbox,
                onSuccess: (props) => console.log('onSuccess', props),
                onFailure: (props) => console.log('onFailure', props),
              });
      • Both begin() and load() should be used in try catch block.

      • load()

        1. Purpose: Configures api.

        2. Returns begin() and end() methods if success

        3. mode interface(for setting environment):

          • declare enum IdvSdkMode {
              Production = "Production",
              Sandbox = "Sandbox"
            } 
        4. Exceptions explained:

          declare enum IdvSdkLoadFailure {
             NotSupportedMode = 'NotSupportedMode' // incorrect mode(environemnt) provided
          }
  • Events

    • onSuccess and onFailure(): callback with returned props:

    • On every callback idv sdk application is closed.

    • Exceptions explained:

      declare enum IdvSdkProcessFailure {
          ConsentDeclined = "ConsentDeclined", // if user declines consent, sdk application is closed and error is returned
          CurrentSessionIdvIdAndPassedIdvIdMismatch = "CurrentSessionIdvIdAndPassedIdvIdMismatch", // idvId was provided and retry: true flag is set but different idvId was provided in the session error is returned. Only valid for F5(refresh page) cases.
          FailureExit = "FailureExit", // When idv process gives a dead end reason and idv identification process failed, user is prompted with exit from sdk application button. Button is clicked - sdk application is closed and FailureExit is returned.
          Generic = "Generic", // An error during sdk application flow happened and we cannot provide the exact reason why the process failed. Sdk closes and returns Generic error. (Something similar like internal server error)
          NoIdvContainer = "NoIdvContainer", // If user closes sdk application in an unknown way and there is still an sdk application instance running.
          InvalidIdvId = "InvalidIdvId", // no accessToken and no idvId case.
          Unauthorized = "Unauthorized" // in case of invalid idvId, in case of expired idvId, in case of any other way invalidated idvId, in case of completed idvId, in case of idvId that does not belong to accessToken etc.
      }
  • After setting up properties for IDV SDK load({mode,onSuccess, onFailure})

    • begin()

      • Purpose: Creates idv session.

      • Props exaplained:

        idvSdk?.begin({
          idvSetupId: 'xxxxxx-xxxx', // Either setupid or idvId needs to be provided, idvId overrides setupId property
          idvId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', // unique idvId
          retry: false, // set to true if idvId is saved in the session storage for example so that browser page could be refreshed multiple times without needing to generate new idvId.
          language?: 'bg-BG' // possible languages are listed below or can be found in the interface 
        });
          
        declare enum IdvLanguage {
          BgBg = 'bg-BG',
          CaEs = 'ca-ES',
          CsCz = 'cs-CZ',
          DeDe = 'de-DE',
          EnGb = 'en-GB',
          EsEs = 'es-ES',
          EtEe = 'et-EE',
          FrFr = 'fr-FR',
          LtLt = 'lt-LT',
          LvLv = 'lv-LV',
          NlNl = 'nl-NL',
          PlPl = 'pl-PL',
          PtBr = 'pt-BR',
          RoRo = 'ro-RO',
          RuRu = 'ru-RU',
          SqAl = 'sq-AL',
          UkUa = 'uk-UA',
          ViVn = 'vi-VN',
        }        
      • if using idvId Recommended to save idvID in your applications session storage. F5(page refresh case), same id would be used and same session would be loaded. In this case retry: true must be set only after refresh. Otherwise when refreshing the page idvId would be invalidated.

      • Exceptions explained:

        declare enum IdvSdkBeginFailure {
        	CantBeUsedInIframe = "CantBeUsedInIframe", // Consumer cannot use this sdk in iframe. We restrict usage due to requiring full screen
        	NoIdvId = "NoIdvId", // idvId or idv setup id was not provided
        	NotSupportedMode = "NotSupportedMode",// check if provided mode is invalid according to SdkMode 
        	ProcessStarted = "ProcessStarted", // if multiple idv begin were started error. You cannot start multiple identifications in the same page simultaniously. 
        	StartFailed = "StartFailed" //  if sdk applications has crashed for some reason when trying to initially load the sdk application. Due to nework error etc. 
        }
    • end()

      1. Closes SDK application without error. Cleans ups all sdk tasks and application.

      2. Props: does not accept any properties.

  • version() returns current sdk version


🗃ī¸ Examples

1ī¸âƒŖ Script


2ī¸âƒŖ npm (React example):

  1. specify registry in .npmrc

    1. @ondato-public:registry=https://pkgs.dev.azure.com/Ondato/PublicNPM/_packaging/ondato-public-npm/npm/registry/ 
      
  2. in package.json specify version “@ondato-public/idv-sdk": "1.x.x" and npm install

  3. Example import can be found in App.tsx in idv_sdk_npm_example zip


🗂ī¸ Extra

1ī¸âƒŖ Interfaces and declarations files


2ī¸âƒŖ How to generate IDV ID?


  • No labels