Node-tupas
Configurable Node.js module for TUPAS identification. Includes test configurations for Nordea, DanskeBank, Handelsbanken, OP, Aktia, Ålandsbanken, S-Pankki, Säästöpankki and POP Pankki.
Currently requires Express.
About
Made at Reaktor.
Apply for juicy positions at reaktor.fi/careers.
Install
npm install tupas
Testing
Run tests with grunt.
Usage and configuration
Basic usage (using default configurations)
var generalOptions = appHandler: app // an Express application hostUrl: 'http://domain.here.com:port[/path]' // required for return URLs, and binding to optional /path; var tupas = ;
Change configurations for existing banks or add new ones
var bankOptions = id: 'nordea' imgPath: '/path/to/my/image.png' vendorId: 'production id' checksumKey: 'production key' id: 'my-new-bank' authUrl: "https://my.banks.url.com/tupas" version: "0002" keyVersion: "0001" idType: "01" imgPath: "/path/to/my/image.png" number: "420" vendorId: "xxxxxxx" checksumKey: "xxxxxxx" ; var tupas = ;
Options for banks:
id
- identifier for the bank (always use when configuring, seeconfig.json
for built-in options)authUrl
- url for the tupas authentication serviceversion
- A01Y_VERSkeyVersion
- A01Y_KEYVERSidType
- A01Y_IDTYPEimgPath
- path for the image used for the HTML formnumber
- bank number (e.g. 800 for DanskeBank)vendorId
- A01Y_RCVIDchecksumKey
- vendor specific key used in computing the MAC
Create TUPAS authentication "buttons" for configured banks
var requestId = "12345678987654321234"; // used as A01Y_STAMPvar buttonHtml = tupas;
...or if you just want the request parameters without generating any HTML:
var params = tupas;
Get a listing of all configured banks (IDs)
var banks = tupasbanks// => ['danskebank', 'handelsbanken', 'nordea',// 'op', 'aktia', 'alandsbanken', 'spankki',// 'saastopankki', 'poppankki', 'my-new-bank']
Response handling
The module binds paths /tupas/ok
(GET and POST), /tupas/cancel
(only GET)
and /tupas/reject
(only GET) to the given Express app for use as return urls.
Response handling is event based.
tupas; tupas; tupas; tupas;
Sample application
See sample/app.js
for a simple usage example. Run the
sample app locally with node sample/start-sample.js
.