Sha256: f3c06dc44b01805d825f28ef9753b708bb16df5f6a7cae59a93a41dc4e8b1d27
Contents?: true
Size: 1.87 KB
Versions: 2
Compression:
Stored size: 1.87 KB
Contents
module DeviseAuthy module Controllers module Helpers extend ActiveSupport::Concern included do before_filter :check_request_and_redirect_to_verify_token, :if => :is_signing_in? end private def remember_device cookies.signed[:remember_device] = { :value => Time.now.to_i, :secure => !(Rails.env.test? || Rails.env.development?) } end def require_token? if cookies.signed[:remember_device].present? && (Time.now.to_i - cookies.signed[:remember_device].to_i) < \ resource_class.authy_remember_device.to_i return false end return true end def is_signing_in? if devise_controller? && signed_in?(resource_name) && self.class == Devise::SessionsController || self.class.ancestors.include?(Devise::SessionsController) && self.action_name == "create" return true end return false end def check_request_and_redirect_to_verify_token if signed_in?(resource_name) && warden.session(resource_name)[:with_authy_authentication] && require_token? # login with 2fa id = warden.session(resource_name)[:id] warden.logout warden.reset_session! # make sure the session resetted session["#{resource_name}_id"] = id # this is safe to put in the session because the cookie is signed session["#{resource_name}_password_checked"] = true session["#{resource_name}_return_to"] = request.path if request.get? redirect_to verify_authy_path_for(resource_name) return end end def verify_authy_path_for(resource_or_scope = nil) scope = Devise::Mapping.find_scope!(resource_or_scope) send("#{scope}_verify_authy_path") end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
devise-authy-1.3.0 | lib/devise-authy/controllers/helpers.rb |
devise-authy-1.2.2 | lib/devise-authy/controllers/helpers.rb |