1.0.0 • Published 22 days ago

opex-2fa v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
22 days ago

Документация opex-2fa

opex-2fa предоставляет простую интеграцию двухфакторной аутентификации (2FA) в приложения на Node.js, используя стандарт TOTP (RFC 6238) и HOTP (RFC 4226). Это позволяет создавать коды, совместимые со стандартными приложениями аутентификаторами, такими как Authy, Google Authenticator и Microsoft Authenticator.

Установка

npm install opex-2fa

Функции API

Генерация секрета для 2FA

Описание

Генерирует секретный ключ, который используется для генерации одноразовых паролей в приложении аутентификаторе.

Функция

generate2faSecret({ name, account })

Входные данные

  • (Object) — Объект настроек, который может содержать:
    • name (String) — название вашего приложения.
    • account (String) — имя или идентификатор аккаунта пользователя.

Возвращаемые данные

  • (Object) — Объект, содержащий:
    • secret (String) — секретный ключ.
    • uri (String) — URI для импорта в аутентификатор.
    • qr (String) — URL адрес QR кода для сканирования.

Пример использования

import { generate2faSecret } from "opex-2fa";

const newSecret = generate2faSecret({ name: "MyApp", account: "user@example.com" });

console.log(newSecret);

Пример ответа

{
  secret: 'ABCDEFGHJKLMNOPQRSTUVWXYZ234567',
  uri: 'otpauth://totp/MyApp:user%40example.com?secret=ABCDEFGHJKLMNOPQRSTUVWXYZ234567&issuer=MyApp',
  qr: 'https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=otpauth://totp/MyApp:user%40example.com?secret=ABCDEFGHJKLMNOPQRSTUVWXYZ234567&issuer=MyApp'
}

Генерация одноразового пароля (OTP)

Описание

Генерирует одноразовый пароль (OTP) на основе секретного ключа.

Функция

generate2faOTP(secret)

Входные данные

  • secret (String) — Секретный ключ пользователя.

Возвращаемые данные

  • otp (String) — Строка, содержащая сгенерированный шестизначный OTP.

Пример использования

import { generate2faOTP } from "opex-2fa";

const otp = generate2faOTP("ABCDEFGHJKLMNOPQRSTUVWXYZ234567");

console.log(otp);

Пример ответа

'123456'

Проверка OTP

Описание

Проверяет, совпадает ли введенный пользователем OTP с сгенерированным на основе секретного ключа. OTP доступен 30 секунд не учитывая сдвиг параметра window в verify2faOTP.

Функция

verify2faOTP(token, otp, window)

Входные параметры

  • secret (String) — Секретный ключ, используемый для проверки OTP. Это должна быть та же строка, которая использовалась при генерации OTP.
  • otp (String) — Одноразовый пароль, введенный пользователем, который необходимо проверить.
  • window (Number) (необязательный) — Определяет допуск временного сдвига для верификации OTP в виде числа токенов до и после текущего момента. По умолчанию: 4.

Возвращаемые данные

  • (Boolean):
    • true — если OTP совпадает.
    • false — если не совпадает или время его действия истекло.

Пример использования

import { verify2faOTP } from "opex-2fa";

const isVerified = verify2faOTP("ABCDEFGHJKLMNOPQRSTUVWXYZ234567", "123456");

console.log(isVerified); 

Пример ответа

true

Developer

OpexDev

1.0.0

22 days ago