@imajin/rx-otp
v2.0.0
Published
HMAC-based (HOTP) and Time-based (TOTP) One-Time Password manager. Works with Google Authenticator for Two-Factor Authentication.
Downloads
2
Maintainers
Readme
One-Time Password manager
One Time Password manager is fully compliant with HOTP (counter based one time passwords) and TOTP (time based one time passwords). It can be used in conjunction with the Google Authenticator
, for Two-Factor Authentication, which has free apps for iOS
, Android
and BlackBerry
.
All methods described in both RFC
are implemented in API.
Now RxJS compliant, wrote in full Typescript | ES6 for client and server side.
Table of contents
- Installation
- Super simple to use
- Build your project with Webpack
- API in Detail
- Contributing
- Change History
- License
Installation
$ npm install --save @akanass/rx-otp rxjs
or
$ yarn add @akanass/rx-otp rxjs
Super simple to use
RX-OTP is designed to be the simplest way possible to generate and verify OTP.
It's fully Typescript
| ES6
written, so you can import it :
import {HOTP} from "@akanass/rx-otp";
or use CommonJS
:
const HOTP = require('@akanass/rx-otp').HOTP;
Now, it's easy to perform a generation of HOTP
:
HOTP.generate('12345678901234567890').subscribe({
next: token => console.log(token), // display 125165 in the console
error: err => console.error(err) // show error in console
});
Build your project with Webpack
If you want to include this library inside a project builds with webpack
for a client
application, you must add this configuration inside your webpack configuration
:
{
target: "web",
node: {
fs: "empty",
net: "empty",
tls: "empty"
}
}
For a server
application, target
will be node
, node
block in configuration doesn't exist and uglify
plugin must be disabled
.
API in Detail
We implemented some functions and to see their details go to documentation folder:
Contributing
To set up your development environment:
- clone the repo to your workspace,
- in the shell
cd
to the main folder, - hit
npm or yarn install
, - run
npm or yarn run test
.- It will lint the code and execute all tests.
- The test coverage report can be viewed from
./coverage/lcov-report/index.html
.
Change History
- v2.0.0 (2021-10-11)
- Upgrade all packages' versions to move on
rxjs:7.4.0
and delete incompatible packages - Delete browser single version due to incompatibility
- Delete
es5
version and now module is only ones2015
and if you want an older support, your bundle system should transpile it toes5
- Fix tests
- Documentation
- Upgrade all packages' versions to move on
- v1.1.0 (2019-07-12)
- Change repository owner name
- Latest packages' versions
- Fix tests
- Documentation
- v1.0.0 (2019-03-08)
- Add scope to library and move to
@akanass/rx-otp
- Rewritten all library and test files in
Typescript
- Add
typings
support - Use
JEST
for testing - Use json-schema and ajv library to validate functions' parameters
- Add scope to library and move to
License
Copyright (c) 2021 Nicolas Jessel. Licensed under the MIT license.