Este Rubygem implementa o padrão móvel-OTP em Ruby, permitindo que você escreva servidores e implementações de clientes com rubi (e trilhos). Isso permite que você, por exemplo, implemente a forte autenticação de dois fatores em seu aplicativo da Web, onde seus usuários usam seus telefones celulares como um token remoto.
gem install motp
Para cada usuário, crie um segredo e permita que eles especifiquem seu PIN. Armazene os dois. Quando eles usam seu sistema, peça-lhes o bloco único. Eles podem conseguir isso usando o telefone celular (que já configuraram com o segredo) e entrando no PIN.
require 'motp'
Motp::check(secret, pin, otp)
Retorna true se o OTP for válido para o segredo e o pino especificado, false caso contrário.
Os OTPs são baseados no relógio UTC e são válidos (por padrão) por três minutos antes e três minutos após serem solicitados, a fim de acomodar o tempo necessário para digitar o OTP, e possíveis variações na precisão dos relógios do sistema em Os dispositivos do servidor e do cliente (telefone celular).
Parâmetros opcionais (anexado até o final):
Se você quiser escrever um cliente móvel-OTP em Ruby, vá em frente! O MOTP Rubygem também suporta isso.
require 'motp'
Motp::otp(secret, pin)
Retorna o OTP para o horário atual. Assim como na implementação do servidor, você pode passar um parâmetro opcional: tempo para especificar o tempo para o que deseja gerar, mas nunca precisará fazer isso, a menos que saiba que o relógio do dispositivo está incorreto.
Este programa é um software livre: você pode redistribuí -lo e/ou modificá -lo nos termos da licença pública geral da GNU, conforme publicado pela Free Software Foundation, versão 3 da licença ou (por sua opção) qualquer versão posterior.
Este programa é distribuído na esperança de que seja útil, mas sem garantia; sem a garantia implícita de comercialização ou aptidão para uma finalidade específica. Veja a licença pública geral da GNU para obter mais detalhes.
Você deveria ter recebido uma cópia da licença pública geral da GNU junto com este programa. Caso contrário, consulte http://www.gnu.org/license/.