libu2f-host for NodeJS
Introduction
This is a native addon for NodeJS that wraps Yubico's libu2f-host convenience functions. It can be used to register and authenticate with remote services using U2F hardware tokens directly from NodeJS without a browser.
License
The library is licensed under the LGPLv2+ license.
Usage
/** * Discover U2F tokens. * @return instance of U2fHost with hardware tokens discovered. * @throws Error description. */U2fHost {}; /** * Register U2F token. * @param registerRequest JSON String of the request received from remote service. * @param origin URL String producing registerRequest. * @return JSON String of signature response data received from U2F token. * @throws Error description. */U2fHostprototype {}; /** * Authenticate U2F token. * @param authRequest JSON String of the request received from remote service. * @param origin URL String of service that generated authRequest. * @return JSON String of signature response data received from U2F token. * @throws Error description. */U2fHostprototype {}; moduleexports = U2fHost;
Register
const assert = ;const devices = ; /* Get register request somehow */const u2f = ;const appId = 'https://example.com';const registerRequest = JSON; /* Sign request with U2F token */const registerResponse = JSON; /* Verify response somehow */const registerStatus = u2f;; /* Store registration data for authentication later *///require('fs').writeFileSync(JSON.stringify(registerStatus), 'registerStatus.json');
Authenticate
const assert = ;const devices = ; /* Load registration data for authentication *///const registerStatus = require('./registerStatus.json'); /* Get auth request somehow */const u2f = ;const appId = 'https://example.com';const authRequest = JSON; /* Sign request with U2F token */const authResponse = JSON; /* Verify response somehow */const authStatus = u2f;;
Building
Dependencies
Instructions
$ npm i