instance method authenticate

Ruby on Rails edge

Since v3.0.20

Available in: v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.11.3 v5.0.7.2 v5.1.7 v5.2.8.1 v6.0.6.1 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3.2 v8.0.5.1 v8.1.3.1 edge

Signature

authenticate(controller, scheme: nil, &login_procedure)

If token Authorization header is present, call the login procedure with the present token and options.

Returns the return value of login_procedure if a token is found. Returns nil if no token is found.

Parameters
  • controller - ActionController::Base instance for the current request.

  • scheme - Optional authentication scheme (or array of schemes) to allow. Defaults to SCHEMES.

  • login_procedure - Proc to call if a token is present. The Proc should take two or three arguments:

    authenticate(controller) { |token, options, scheme| ... }

    The third argument contains the downcased authentication scheme from the request, e.g. :token, :bearer, or :dpop.

Parameters

controller req
scheme key = nil
login_procedure block
Source
# File actionpack/lib/action_controller/metal/http_authentication.rb, line 487
      def authenticate(controller, scheme: nil, &login_procedure)
        request = controller.request
        request_scheme = normalize_scheme(request.authorization.to_s[AUTH_SCHEME_REGEX, 1])
        schemes = normalize_schemes(scheme.presence || SCHEMES)

        token, options = token_and_options(request)
        unless token.blank? || !schemes.include?(request_scheme)
          login_procedure.call(token, options, request_scheme)
        end
      end

Defined in actionpack/lib/action_controller/metal/http_authentication.rb line 487 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActionController::HttpAuthentication::Token

Type at least 2 characters to search.

Use the arrow keys to navigate results, Enter to open one, Escape to close.

Keyboard shortcuts

/
Focus search
⌘K / Ctrl-K
Command palette
?
This help
Esc
Close