passcode icon indicating copy to clipboard operation
passcode copied to clipboard

One-time passcode generator (HOTP/TOTP) with URL generation for Google Authenticator

Passcode has been merged into Speakeasy 2.0! Please update to Speakeasy for continuing support and updates. Speakeasy incorporates the following API changes from Passcode:

  • options.time and options.epoch are now specified in seconds instead of milliseconds.
  • url() has been renamed to otpauthURL()
  • .verify() functions now return true on valid and false otherwise; use .verifyDelta() to retrieve the delta from verification.

Passcode

Passcode implements one-time passcode generators as standardized by the Initiative for Open Authentication (OATH). The HMAC-Based One-time Password (HOTP) algorithm defined by RFC 4226 and the Time-based One-time Password (TOTP) algorithm defined in RFC 6238 are supported.

Passcode is a heavily modified version of speakeasy incorporating the verification functions of notp.

Install

npm install --save passcode

Usage

var passcode = require("passcode");
var token = passcode.hotp({
  secret: "xyzzy",
  counter: 123
});
// token = "378764"

var ok = passcode.hotp.verify({
  secret: "xyzzy",
  token: token,
  counter: 123
});
// ok = {delta: 0}

Documentation

Full documentation at http://mikepb.github.io/passcode/

License

This project incorporates code from speakeasy and notp, both of which are licensed under MIT. Please see the LICENSE file for the full combined license.