/irmajs

IRMA JavaScript library for attribute verification and issuance

Primary LanguageJavaScript

irmajs

irmajs is a Javascript client of the RESTful JSON API offered by the irma server. It allows you to use the irma server to:

  • Verify IRMA attributes. You specify which attributes, the library handles the user interaction and the communication with the irma server and the IRMA app).
  • Issue IRMA attributes.
  • Create IMRA attribute-based signatures: signature on a string to which IRMA attributes are verifiably attached.

irmajs supports all major browsers (Firefox, Chrome, Safari, Edge, Internet Explorer 11).

Documentation

Technical documentation of irmajs can be found at irma.app/docs.

Building

Compile the library:

npm run build

This writes irma.js to the dist folder, which you can include in your website in a <script> tag

Browser example

If you have included irma.js (e.g. <script src="irma.js" defer></script>) you can start an IRMA disclosure session as follows:

const request = {
    'type': 'disclosing',
    'content': [{
        'label': 'Over 18',
        'attributes': [ 'irma-demo.MijnOverheid.ageLower.over18' ]
    }]
};

irma.startSession(server, request)
    .then(({ sessionPtr, token }) => irma.handleSession(sessionPtr, {server, token}))
    .then(result => console.log('Done', result));

This assumes you have an irma server that is configured to accept unauthenticated session requests listening at the URL indicated by server.

For complete examples, see the examples folder.