Module: @nginstack/engine/lib/otp/TOTP

Classes

TOTP

Type Definitions


TOTPOptions

Opções de geração e verificação de senhas de uso único.

Type:
  • Object
Properties:
Name Type Argument Description
digits number <optional>

Quantidade de dígitos. Caso não seja informado, será utilizada uma senha de 6 dígitos.

algorithm string <optional>

Algoritmo de hash que será utilizado pelo HMAC para gerar a senha de uso único. São suportados os seguintes algoritmos: 'sha1', 'sha256' e 'sha512'. Caso não seja informado, será utilizado o 'sha1'.

timeStep number <optional>

Determina o período em segundos no qual uma senha de uso único permanecerá válida. O algoritmo TOTP utiliza um contador interno que é incrementado a cada timeStep a partir do início do Unix Epoch. A cada alteração do contador, uma nova senha única é gerada. O valor atual do contador pode ser obtido pela expressão:

counter = Math.floor((Date.now() / 1000) / timeStep)

Caso não seja informado, serão utilizados passos de 30 segundos. Esse é o valor sugerido pelo RFC 6238 e adotado pelos principais autenticadores TOTP.

tolerance number <optional>

Quantidade de time-steps que serão adicionados e subtraídos ao time-step atual na verificação de uma senha de uso único. A tolerância é necessária para desconsiderar o tempo de transmissão da senha de uso único para o servidor e as eventuais diferenças de relógio entre o cliente que gerou a senha e o servidor que irá validá-la. Caso não seja informada, será adotada uma tolerância de 1 time-step, valor sugerido no RFC 6238.

currentTimestamp number <optional>

Data e hora atual que será utilizada pelo algoritmo TOTP, representada pela quantidade de milissegundos a partir de 1 de Janeiro de 1970 00:00:00 UTC. Caso não seja informada, será utilizada a data e hora local do servidor da base de dados. Valores de timestamp negativos não são suportados pelo algoritmo TOTP.