8
我需要在登錄過程(3.0.9導軌,紅寶石1.9.2,1.3.4設計)來覆蓋設計會話控制器,我想這沒有任何效果導軌3倍率設計會話控制器
class SessionsController < Devise::SessionsController
# GET /resource/sign_in
def new
resource = build_resource
clean_up_passwords(resource)
respond_with_navigational(resource, stub_options(resource)){ render_with_scope :new }
end
end
想法?
編輯 正如答案中所示,我還需要更改路線。另外,我還需要複製視圖。這是更好地在這裏 http://presentations.royvandewater.com/authentication-with-devise.html#8
我的自定義策略解釋說:
devise.rb
config.warden do |manager|
manager.strategies.add(:custom_strategy) do
def authenticate!
... authenticate against 3rd party API...
if res.body =~ /success/
u = User.find_or_initialize_by_email(params[:user][:email])
if u.new_record?
u.save
end
success!(u)
end
end
end
是的我只是想到了這一點,我也需要複製它看起來的意見。除了上述變更之外,我是否還保留了原始的'devise_for:users'路線?我不想覆蓋其他行動。 –
還有一個問題,除了我添加的自定義策略之外,它也不會執行默認的數據庫身份驗證策略,不確定如何解決此問題。 –
應該只有1個'devise_for',並且在您複製視圖之後,即使您沒有覆蓋的操作也應該可以工作。 至於你的其他問題,我並不完全關注。你有你的模型中設置的':database_authenticatable'選項。 (即:devise:database_authenticatable) – Olives