Class: OAuth2::Strategy::ClientCredentials

Inherits:
Base
  • Object
show all
Defined in:
lib/oauth2/strategy/client_credentials.rb

Overview

The Client Credentials Strategy

Instance Method Summary collapse

Methods inherited from Base

#client_params, #initialize

Constructor Details

This class inherits a constructor from OAuth2::Strategy::Base

Instance Method Details

#authorization(client_id, client_secret) ⇒ Object

Returns the Authorization header value for Basic Authentication

Parameters:

  • The (String)

    client ID

  • the (String)

    client secret



31
32
33
# File 'lib/oauth2/strategy/client_credentials.rb', line 31

def authorization(client_id, client_secret)
  'Basic ' + Base64.encode64(client_id + ':' + client_secret).gsub("\n", '')
end

#authorize_urlObject

Not used for this strategy

Raises:

  • (NotImplementedError)


12
13
14
# File 'lib/oauth2/strategy/client_credentials.rb', line 12

def authorize_url
  fail(NotImplementedError, 'The authorization endpoint is not used in this strategy')
end

#get_token(params = {}, opts = {}) ⇒ Object

Retrieve an access token given the specified client.

Parameters:

  • params (Hash) (defaults to: {})

    additional params

  • opts (Hash) (defaults to: {})

    options



20
21
22
23
24
25
# File 'lib/oauth2/strategy/client_credentials.rb', line 20

def get_token(params = {}, opts = {})
  request_body = opts.delete('auth_scheme') == 'request_body'
  params.merge!('grant_type' => 'client_credentials')
  params.merge!(request_body ? client_params : {:headers => {'Authorization' => authorization(client_params['client_id'], client_params['client_secret'])}})
  @client.get_token(params, opts.merge('refresh_token' => nil))
end