我在我的rails 3.2應用程序之上構建了一個API。禁用設計sign_in重定向
當我第一次使用正確的參數登錄api/login
時,它效果很好。 但是,當我試圖再次重複完全相同的操作時,我已經登錄,它呈現我的應用程序的主頁的HTML。我想這是因爲我的應用程序設置登錄後重定向到這個頁面我可以修改我的api/sessions_controller.rb
,使得它不重定向到任何東西。
class SessionsController < Devise::SessionsController
prepend_before_filter :require_no_authentication, :only => [:create]
before_filter :ensure_params_exist, :only => [:create]
respond_to :json
def create
build_resource
resource = User.find_for_database_authentication(login: params[:login])
return invalid_login_attempt unless resource
if resource.valid_password?(params[:password])
sign_in("user", resource) # I would like to disable redirection here
generate_authentication_token(resource)
render :json => {success: true, ...}
return
end
invalid_login_attempt
end
編輯
def invalid_login_attempt
warden.custom_failure!
render :json=> {success: false, message: "Error with your login or password" + params.inspect}, :status=>401
end
什麼是'invalid_login_attempt'? –
只是處理無效的參數 - 請參閱編輯 – titibouboul
剛剛發現您從中取得這一點的要點。如果你沒有注意到,它已經超過2年了,所以它可能已經被寫入了比你正在使用的版本更老版本的Devise。你能澄清一下這個API的用途嗎?即,它是單頁應用程序的後端,還是設計爲由其他應用程序使用? –