Repository is archived
There's a lot of open issues
No release in over a year
This Gem can be used to create 2FA (Two-Factor Authentication) function, email address verification function for member registration and etc in Ruby on Rails.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

>= 0
>= 0
 Project Readme

OneTimePassword

This Gem can be used to create 2FA (Two-Factor Authentication) function, email address verification function for member registration and etc in Ruby on Rails.

Installation

Add this line to your application's Gemfile:

gem "one_time_password"

And then execute:

$ bundle

Or install it yourself as:

$ gem install one_time_password

Usage

Run command for an installation.

bundle exec rails g one_time_password:install

The following events will take place when using the install generator:

  • An initializer file will be created at config/initializers/one_time_password.rb
  • A migration file will be created at db/migrate/xxxxxxxxxxxxxx_create_one_time_authentication.rb
  • A model file will be created at app/models/one_time_authentication.rb

And run migration.

bundle exec rails db:migrate

Rewrite FUNCTION_NAMES and CONTEXTS in initializer settings.

Configuration in config/initializers/one_time_password.rb.

FUNCTION_NAMES: Using function_name in OneTimeAuthentication Model enum.

Hash, one of CONTEXTS:

function_name (Symbol) Name each function.
expires_in (ActiveSupport::Duration) Password validity time.
max_authenticate_password_count (Integer) Number of times user can enter password each generated password.
password_length (Integer) Password length. At 6, for example, the password would be 123456.
password_failed_limit (Integer)
password_failed_period (ActiveSupport::Duration)
If you try to authenticate with the wrong password a password_failed_limit times within the time set by password_failed_period, you will not be able to generate a new password.

See example and its sequence diagram

here

OneTimePassword::OneTimeAuthentication's methods.

For more information, see the implementation of OneTimePassword :: OneTimeAuthenticationModel.

Example and its sequence diagram

See sign up exsample.

Sequence diagram.

sequence diagram image

License

The gem is available as open source under the terms of the MIT License.