opex-2fa
v1.0.0
Published
Простая интеграция двухфакторной аутентификации в Node.js приложения
Downloads
6
Maintainers
Readme
Документация 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: "[email protected]" });
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