ProofSpace provides an auto generated code and library to simplify integration of QR/Web-link into your web site.

(blue star) Instructions

  1. Library options
    ssi-auth-lib library shows QR for desktop browsers and Web-link button for mobile browsers to trigger the interaction. It has two options:

    1. Show QR/Web-link to trigger an interaction with QR initiation media selected.

    2. Show QR/Web-link to trigger an interaction with QR initiation media selected and support SSI OAuth flow configured on the dashboard for this particular interaction.

  2. Library can be included

    1. as builded bundle

      <script src="<path_to_lib>/wl.js"></script>

    2. or as npm library https://www.npmjs.com/package/ssi-auth-lib
      npm install ssi-auth-lib –save
      const ProofSpace = require(‘ssi-auth-lib’)

  3. Usage

    1. For the pure interaction without SSI OAuth flow

      ProofSpace.WebLinker.start(elem, {
       serviceDid: <YOUR_SERVICE_DID>,
       interactionId: <YOUR_OAUTH_ACTION_ID>,
       instanceId: <YOUR_OAUTH_INSTANCE_ID>,
       size: 300 // size of QR code in pixels
      }).then(() => {
       console.log(‘QR Initialized’);
      });

    2. For the interaction with SSI OAuth flow

      ProofSpace.WebLinker.startWithSSIOAuth(elem, {
       serviceDid: <YOUR_SERVICE_DID>,
       interactionId: <YOUR_OAUTH_ACTION_ID>,
       instanceId: <YOUR_OAUTH_INSTANCE_ID>,
       size: 300 // size of QR code in pixels
      }).then((result) => {
       console.log(result.access_token);
      });
  4. Both start and startWithSSIOAuth has 3 parameters:

    start(element, config, preFilledCredentials)

    where

{
  size?: number; // size of QR-code in pixels
  env?: Env; // environment config, used for test, stage or local environment. Prod by default
  serviceDid: string; // your service did
  interactionId: string; // id of your interaction
  instanceId: string; // id of your interaction instance 
  button?: BtnConfig; // config for styling button for mobile web link
  timer?: Style; // style for timer element (for SSIOAuth)
  qr?: Style; // style for QR element
  returnToBrowser?: boolean; // use callback for return to browser page
  popOverMode?: boolean; // use PopOver with QR code for desktop
  log?: LogFn; // function for logs (debug info)
}

Note: the attribute values should all be string.

According to the attribute type, which is set in the credential schema, values should be set to:
Text — text itself
Date — string with the number of seconds since epoch.
Number — number as string. If this number is float, than '.' used as decimal point "222.2222"
ImageURL -- url as string. // NOT USED YET
Enumeration -- numeric enumeration value as string, i.e. "0", "1",..etc

Actual value types will be casted on credential attribute display in the app according to the credential schema attribute types.

{
  containerURIPrefix: string
  SSIAuthenticationCredDefId: string;
  authServiceUrl: string;
  nativeURIPrefix: string
}

Or you can use predefined TEST and STAGE ProofSpace env if you have your services up and running there:

ProofSpace.ENV.TEST for the Testing Environment

ProofSpace.ENV.STAGE for the Staging Environment

Example:

  1. ProofSpace.WebLinker.start(elem, {
     env: ProofSpace.ENV.STAGE,
     serviceDid: <YOUR_SERVICE_DID>,
     interactionId: <YOUR_OAUTH_ACTION_ID>,
     instanceId: <YOUR_OAUTH_INSTANCE_ID>,
     size: 300 // size of QR code in pixels
    }).then(() => {
     console.log(‘QR Initialized’);
    });
{
  class?: string; // css class
  style?: string; // css class
}

To simplify the integration ProofSpace Dashboard can show the test QR and generate the code to embed for your interactions.

Example:

5. You may find a few examples through the links:

Pre-filled credentials

SSI OAuth Demo

(blue star) Related articles

The content by label feature automatically displays related articles based on labels you choose. To edit options for this feature, select the placeholder and tap the pencil icon.