ri > ActionController::HttpAuthentication::Basic

= ActionController::HttpAuthentication::Basic

(from /home/chedong/.local/share/rdoc)
------------------------------------------------------------------------
Makes it dead easy to do HTTP Basic authentication.

=== Simple Basic example

   class PostsController < ApplicationController
     http_basic_authenticate_with name: "dhh", password: "secret", except: :index

     def index
       render plain: "Everyone can see me!"
     end

     def edit
       render plain: "I'm only accessible if you know the password"
     end
  end

=== Advanced Basic example

Here is a more advanced Basic example where only Atom feeds and the XML
API is protected by HTTP authentication, the regular HTML interface is
protected by a session approach:

  class ApplicationController < ActionController::Base
    before_action :set_account, :authenticate

    private
      def set_account
        @account = Account.find_by(url_name: request.subdomains.first)
      end

      def authenticate
        case request.format
        when Mime[:xml], Mime[:atom]
          if user = authenticate_with_http_basic { |u, p| @account.users.authenticate(u, p) }
            @current_user = user
          else
            request_http_basic_authentication
          end
        else
          if session_authenticated?
            @current_user = @account.users.find(session[:authenticated][:user_id])
          else
            redirect_to(login_url) and return false
          end
        end
      end
  end

In your integration tests, you can do something like this:

  def test_access_granted_from_xml
    authorization = ActionController::HttpAuthentication::Basic.encode_credentials(users(:dhh).name, users(:dhh).password)

    get "/notes/1.xml", headers: { 'HTTP_AUTHORIZATION' => authorization }

    assert_equal 200, status
  end
------------------------------------------------------------------------
= Instance methods:

  auth_param
  auth_scheme
  authenticate
  authentication_request
  decode_credentials
  encode_credentials
  has_basic_credentials?
  user_name_and_password

Generated by phpman v4.9.26-1-g511901d · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-07-29 00:47 @216.73.217.46
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!