需要使用Devise进行Authy 2因子身份验证

时间:2017-05-21 18:58:43

标签: ruby devise twilio authy

我有一个设置了Devise登录的应用程序,我想用Authy / Twilio实现双因素身份验证。我设置了如果用户转到路径/ enable_authy,他们可以获得文本代码来验证他们的帐户。我试图这样做,所以要求这样做,而不仅仅是奖金。

我的路线......

 devise_for :users,
   :controllers => { :omniauth_callbacks => "users/omniauth_callbacks"},
   :path_names => {
    :verify_authy => "/verify-token",
    :enable_authy => "/enable_authy",
    :verify_authy_installation => "/verify-installation"
  }

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

gem本身无法强制用户启用双因素身份验证。但是,您可以使用before_action中的ApplicationController自行确保这一点。您只需要检查您的登录用户是否已启用Authy,如果不是,则将其重定向到/enable_authy

类似的东西:

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception

  before_action :ensure_authy_enabled

  private

  def ensure_authy_enabled
    return if params[:controller] == "devise/devise_authy"
    if current_user and !current_user.authy_enabled?
      redirect_to user_enable_authy_path
    end
  end
end

您可能还想设置一条Flash消息来解释发生了什么,或者存储了用户打算访问的路径,这样您就可以在设置2FA后将其重定向到那里。

让我知道这是否有帮助。