Search code examples
ruby-on-railsjsondevise

How to make Devise authentication respond to JSON only?


How to disable in Devise handling of HTML and XML requests and leave JSON only?


Solution

  • I imagine you could override the Devise Controllers:

    In controllers/devise_overrides/sessions_controller.rb:

    class DeviseOverrides::SessionsController < Devise::SessionsController
    
      respond_to :json
      respond_to :html, only: []
      respond_to :xml, only: []
    
    end
    

    In routes.rb:

    devise_for :users, controllers: {
      sessions:  "devise_overrides/sessions"
    }