Sha256: 8d3a50ee32d6d143e4ff3e83198f9e1478907b594c1c9b432622ac246902fcbe

Contents?: true

Size: 1.06 KB

Versions: 3

Compression:

Stored size: 1.06 KB

Contents

class Doorkeeper::TokensController < Doorkeeper::ApplicationController
  def create
    response.headers.merge!({
      'Pragma'        => 'no-cache',
      'Cache-Control' => 'no-store',
    })
    if token.authorize
      render :json => token.authorization
    else
      render :json => token.error_response, :status => token.error_response.status
    end
  end

  private

  def client
    @client ||= Doorkeeper::OAuth::Client.authenticate(credentials)
  end

  def credentials
    methods = Doorkeeper.configuration.client_credentials_methods
    @credentials ||= Doorkeeper::OAuth::Client::Credentials.from_request(request, *methods)
  end

  def token
    case params[:grant_type]
    when 'password'
      owner = resource_owner_from_credentials
      @token ||= Doorkeeper::OAuth::PasswordAccessTokenRequest.new(client, owner, params)
    when 'client_credentials'
      @token ||= Doorkeeper::OAuth::ClientCredentialsRequest.new(Doorkeeper.configuration, client, params)
    else
      @token ||= Doorkeeper::OAuth::AccessTokenRequest.new(client, params)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
doorkeeper-0.4.2 app/controllers/doorkeeper/tokens_controller.rb
doorkeeper-0.4.1 app/controllers/doorkeeper/tokens_controller.rb
doorkeeper-0.4.0 app/controllers/doorkeeper/tokens_controller.rb