# nagatech-authentication

> TOTP authentication for Nagatech Application

Latest version **1.0.4** (published 2023-06-23) · ISC license · 0 weekly downloads

## Install

```sh
npm install nagatech-authentication
pnpm add nagatech-authentication
yarn add nagatech-authentication
bun add nagatech-authentication
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.4 |
| Published | 2023-06-23 |
| First published | 2023-06-21 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 6.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | octastudio |

## Links

- npm: https://www.npmjs.com/package/nagatech-authentication
- npm.io page: https://npm.io/package/nagatech-authentication

## Dependencies (2)

- [tslib](https://npm.io/package/tslib.md) ^2.5.3
- [crypto-js](https://npm.io/package/crypto-js.md) ^4.1.1

## Recent versions

- 1.0.4 (latest) — 2023-06-23
- 1.0.3 — 2023-06-21
- 1.0.2 — 2023-06-21
- 1.0.1 — 2023-06-21
- 1.0.0 — 2023-06-21

## README

# Nagatech Authenticator

`NagatechAuthenticator` adalah sebuah paket Node.js yang menyediakan mekanisme autentikasi OTP (One Time Password) berbasis HMAC SHA256.

## Instalasi

Dengan menggunakan npm:

```
npm install nagatech-authentication
```

## Cara Penggunaan

Pertama, impor `initNagatechAuthenticator` dan `getInstance` dari paket:

```javascript
import {
  initNagatechAuthenticator,
  getInstance,
} from "nagatech-authentication";
```

Selanjutnya, inisialisasikan autentikator dengan `apiKey` dan `company` Anda:

```javascript
initNagatechAuthenticator({
  apiKey: "YOUR_API_KEY",
  company: "YOUR_COMPANY_NAME",
});
```

Anda sekarang dapat memperoleh instance `NagatechAuthenticator` dan menggunakannya untuk meminta autentikasi dan memvalidasi OTP:

```javascript
const instance = getInstance();
const authRequest = instance.requestAuthentication({
  appName: "my-app",
  username: "my-user",
});

// Assuming the OTP is obtained from the user
const isValidOtp = instance.validateOtp("secretCode", "user-input-otp");
```

## Fungsi

### `initNagatechAuthenticator({ apiKey, company })`

Menginisialisasi `NagatechAuthenticator`. Parameter `apiKey` dan `company` harus diberikan.

### `getInstance()`

Mengambil instance dari `NagatechAuthenticator`. Instance ini diinisialisasi menggunakan `initNagatechAuthenticator`.

### `requestAuthentication({ appName, username })`

Membuat permintaan otentikasi baru dan mengembalikan string JSON yang berisi `appName`, `username`, dan `secretCode`.

### `validateOtp(secretCode, otp)`

Memvalidasi OTP berdasarkan kode rahasia yang diberikan. Mengembalikan `true` jika OTP cocok, dan `false` jika tidak.

## Catatan

Paket ini memerlukan [CryptoJS](https://www.npmjs.com/package/crypto-js) sebagai dependensinya.

Catatan: Ubah "YOUR_API_KEY", "YOUR_COMPANY_NAME", dan "secretCode" dengan nilai yang sesuai dari aplikasi Anda. Untuk "user-input-otp", ini harus diganti dengan OTP yang diterima dari pengguna.

---
_Source: https://npm.io/package/nagatech-authentication · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
