mirror of
https://github.com/LanceGin/jsotp.git
synced 2026-05-05 00:00:03 +08:00
upd: group the classes and export to one
This commit is contained in:
+35
-4
@@ -5,16 +5,47 @@
|
|||||||
* @Disc : a node module to generate and verify one-time passwords
|
* @Disc : a node module to generate and verify one-time passwords
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { OTP } from './otp';
|
|
||||||
import { TOTP } from './totp';
|
import { TOTP } from './totp';
|
||||||
import { HOTP } from './hotp';
|
import { HOTP } from './hotp';
|
||||||
import { Base32 } from './base32';
|
import { Base32 } from './base32';
|
||||||
import { Util } from './util';
|
import { Util } from './util';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate and return HOTP object
|
||||||
|
*
|
||||||
|
* @param {secret}
|
||||||
|
* @type {String}
|
||||||
|
* @desc random base32-encoded key to generate OTP.
|
||||||
|
*
|
||||||
|
* @return {OTP}
|
||||||
|
*/
|
||||||
|
function hotp_gen(secret, digits=6, digest="SHA-1") {
|
||||||
|
let hotp = new HOTP(secret, digits, digest);
|
||||||
|
return hotp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate and return TOTP object
|
||||||
|
*
|
||||||
|
* @param {secret}
|
||||||
|
* @type {String}
|
||||||
|
* @desc random base32-encoded key to generate OTP.
|
||||||
|
*
|
||||||
|
* @param {interval}
|
||||||
|
* @type {int}
|
||||||
|
* @desc the time interval in seconds for OTP.
|
||||||
|
* This defaults to 30.
|
||||||
|
*
|
||||||
|
* @return {OTP}
|
||||||
|
*/
|
||||||
|
function totp_gen(secret, interval=30) {
|
||||||
|
let totp = new TOTP(secret, interval);
|
||||||
|
return totp;
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
OTP,
|
hotp_gen as HOTP,
|
||||||
TOTP,
|
totp_gen as TOTP,
|
||||||
HOTP,
|
|
||||||
Base32,
|
Base32,
|
||||||
Util
|
Util
|
||||||
};
|
};
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
let jsotp = require("../lib/jsotp");
|
||||||
|
var assert = require('assert');
|
||||||
|
|
||||||
|
describe('jsotp class test', function() {
|
||||||
|
describe('is HOTP module import?', function() {
|
||||||
|
|
||||||
|
let hotp = jsotp.HOTP("J22U6B3WIWRRBTAV");
|
||||||
|
|
||||||
|
it("should return object", function() {
|
||||||
|
assert.equal("object", typeof(hotp))
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('is TOTP module import?', function() {
|
||||||
|
|
||||||
|
let totp = jsotp.TOTP("J22U6B3WIWRRBTAV");
|
||||||
|
|
||||||
|
it("should return object", function() {
|
||||||
|
assert.equal("object", typeof(totp))
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('is Base32 module import?', function() {
|
||||||
|
|
||||||
|
let b32_random = jsotp.Base32.random_gen();
|
||||||
|
|
||||||
|
it("should return string", function() {
|
||||||
|
assert.equal("string", typeof(b32_random))
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('is Util module import?', function() {
|
||||||
|
|
||||||
|
let now = jsotp.Util.timecode(new Date(), 30);
|
||||||
|
|
||||||
|
it("should return int", function() {
|
||||||
|
assert.equal("number", typeof(now))
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user