Skip to content
/ JS-OTP Public
forked from jiangts/JS-OTP

100% Javascript Implementation of HOTP and TOTP for Two-Factor Authentication.

License

Notifications You must be signed in to change notification settings

MRVMV/JS-OTP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JS OTP

Javascript Implementation of HOTP and TOTP


A small javascript library (17k minified, 6.3k minified and gzipped) that handles generation of HMAC-based One-time Password Algorithm (HOTP) codes as per the HOTP RFC Draft and the Time-based One-time Password Algorithm (TOTP) codes as per the TOTP RFC Draft. This library produces the same codes as the Google Authenticator app.

This package only exposes jsOTP and jsSHA to global scope and does not depend on jQuery.

Usage:

Usage is simple. Just include dist/jsOTP.js to your page and pass it a config.

<script src='dist/jsOTP.min.js'></script>
<script>
// hotp
var hotp = new jsOTP.hotp();
var hmacCode = hotp.getOtp(<your OTP key>, <counter>);

// totp
var totp = new jsOTP.totp();
var timeCode = totp.getOtp(<your OTP key>);
</script>

Additional Configs

You can also configure the expiry time for each code (defaults to 30 seconds) and the length of the code (between 6 and 8, defaults to 6) by passing two optional arguments to the totp constructor:

var totp = new jsOTP.totp(<expiry seconds>, <code length>);

You can also input the time for TOTP calculations as an optional second argument:

var timeCode = totp.getOtp(<OTP key>, <milliseconds time>);

Building

Due to an issue with babel causing it to replace window dependency with undefined, use release.sh from the main direcotry. It runs sed before minification to replace broken window injections.

Acknowledgements

This package is adapted from the following fiddle and the Node OTP library and uses Brian Turek's jsSHA.

About

100% Javascript Implementation of HOTP and TOTP for Two-Factor Authentication.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 88.5%
  • CoffeeScript 7.1%
  • HTML 4.3%
  • Shell 0.1%