Эта Rubygem реализует стандарт Mobile-OT в Ruby, что позволяет писать Ruby (и Rails) серверы и реализации клиентов. Это позволяет вам, например, реализовать сильную двухфакторную аутентификацию в вашем веб-приложении, где ваши пользователи используют свои мобильные телефоны в качестве удаленного токена.
gem install motp
Для каждого пользователя придумайте секрет и позвольте им указать свой PIN -код. Хранить оба. Когда они используют вашу систему, попросите у них единовременную площадку. Они могут получить это, используя свой мобильный телефон (который они уже настроили с секретом) и вводя их PIN -код.
require 'motp'
Motp::check(secret, pin, otp)
Возвращает true, если OTP действителен для указанного секрета и вывода, False в противном случае.
OTP основаны на часах UTC и действительны (по умолчанию) в течение трех минут до и три минуты после их запроса, чтобы соответствовать временю, необходимому для печати в OTP, и возможные изменения в точности системных часов на сервер и устройства клиента (мобильный телефон).
Дополнительные параметры (добавлены к концу):
Если вы хотите написать клиент Mobile-OTP в Ruby, продолжайте! Motp Rubygem также поддерживает это.
require 'motp'
Motp::otp(secret, pin)
Возвращает OTP в текущее время. Как и в случае реализации сервера, вы можете передать необязательный: параметр времени, чтобы указать время для того, чтобы вы хотите генерировать, но вам никогда не нужно делать это, если вы не знаете, что часы устройства будут неверными.
Эта программа является бесплатным программным обеспечением: вы можете перераспределить его и/или изменить ее в соответствии с условиями общей публичной лицензии GNU, опубликованных Фондом Free Software, либо версией 3 лицензии, либо (по варианту) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезна, но без каких -либо гарантий; без подразумеваемой гарантии товарной или пригодности для определенной цели. Смотрите общую публичную лицензию GNU для получения более подробной информации.
Вы должны были получить копию общей публичной лицензии GNU вместе с этой программой. Если нет, см. Http://www.gnu.org/licenses/.