This module is developed to enable rapid deployment of identity based authentication for Node.js by creating a common interface to most of the suppliers for official electronic identification and it allows you to mix and match your suppliers. This is a reusability code port of code that I have contributed to teams-app-eid with some smart addons and international support.
Regardless of which backend service you use the basic usage is the same. Some backends require more configuration than others. However the classes expose same interface and responses so code is easy to use. You can read details of the interface or see some more practical examples
const eid = require('eid');
var config = eid.configFactory({clientType: 'frejaeid', enviroment: 'testing'});
var client = eid.clientFactory(config);
client.doRequest({id: '200101011212'}).then(function(endResult){
console.log(endResult)
});
or the more backwards compatible
const eid = require('eid');
var config = eid.configFactory({clientType: 'frejaeid', enviroment: 'testing'});
var client = eid.clientFactory(config);
client.authRequest('200101011212').then(function(endResult) {
console.log(endResult)
});
Clients are the classes that manage communication with the backend services. The library supports a bunch of clients out of the box, but additional clients can easily be added to make sure that the one interface strategy works.
Client | ID Types | Vendor | Authentication | Signing | Markets |
---|---|---|---|---|---|
FrejaEID | Freja eID | Freja eID AB | ✔️ | ✔️ | 🇸🇪 🇩🇰 🇳🇴 🇫🇮 |
BankID | BankID | Finansiell ID-Teknik AB | ✔️ | ✔️ | 🇸🇪 |
GRP2 | Freja eID, BankID | Funktionstjänster/CGI | ✔️ | ✔️ | 🇸🇪 |
GrandID | Freja eID, BankID, Mobile SiTHS | Svensk E-Identitet AB | ✔️ | ✔️ | 🇸🇪 |
Signicat | BankID | Signicat | ✔️ | 🇸🇪 | |
IDKollen | BankID | IDkollen i Sverige AB | ✔️ | ✔️ | 🇸🇪 |
The configuration options should be quite obvious as what they do. If you are unsure your supplier will most probably be able to determine what information you need. Most modules have sane values, certificates etc for most testing services and production services however there is no production credentials and you need to strike an agreement with the services yourself to obtain these.