0
我期待設置一個二級密碼,通過它我可以從admin身份驗證用戶的登錄身份。這項工作的原因是前端是單頁應用程序。Rails 4.2.6 - 設計4.2.2 - 默認驗證
給每個用戶一個唯一的login_as字符串。現在我需要配置Devise來比較login_as,如果密碼失敗。
任何幫助表示讚賞。如果有更好的方法,我當然可以選擇另一種解決方案。
謝謝。
我期待設置一個二級密碼,通過它我可以從admin身份驗證用戶的登錄身份。這項工作的原因是前端是單頁應用程序。Rails 4.2.6 - 設計4.2.2 - 默認驗證
給每個用戶一個唯一的login_as字符串。現在我需要配置Devise來比較login_as,如果密碼失敗。
任何幫助表示讚賞。如果有更好的方法,我當然可以選擇另一種解決方案。
謝謝。
Duncan Robertson的post對解決我的問題非常有幫助。我基本上創建了一個覆蓋策略,並在devise.rb文件中調用它。我有一些關於篡改大量用戶羣的擔憂,但它已被證明是成功的。通過向名爲「:signin_as」的用戶添加一列,然後使用rake將其設置爲默認的唯一字符串,然後在初始登錄失敗時擁有我所需的備份。
超控策略(配置/初始化/ auth_override.rb)
module Devise
module Strategies
class AuthOverride < Authenticatable
def custom_auth(user, signin_as)
if user[:signin_as] == signin_as
return true
else
return false
end
end
def authenticate!
user = User.find_by_email(email)
if user
if user.valid_password?(params[:password])
success!(user)
elsif custom_auth(user, params[:password])
success!(user)
else
fail
end
else
fail
end
end
end
end
end
包括色器件策略(配置/初始化/ devise.rb)
config.warden do |manager|
manager.default_strategies(:scope => :user).unshift :auth_override
end