Class: OAuth2::Provider::Rack::AuthorizationCodeRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/oauth2/provider/rack/authorization_code_request.rb

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ AuthorizationCodeRequest

Returns a new instance of AuthorizationCodeRequest.



3
4
5
# File 'lib/oauth2/provider/rack/authorization_code_request.rb', line 3

def initialize(params)
  @params = params
end

Instance Method Details

#clientObject



48
49
50
# File 'lib/oauth2/provider/rack/authorization_code_request.rb', line 48

def client
  @client ||= OAuth2::Provider.client_class.from_param(client_id)
end

#client_idObject



44
45
46
# File 'lib/oauth2/provider/rack/authorization_code_request.rb', line 44

def client_id
  @params['client_id']
end

#deny!Object



36
37
38
# File 'lib/oauth2/provider/rack/authorization_code_request.rb', line 36

def deny!
  throw_response Responses.redirect_with_error('access_denied', redirect_uri)
end

#grant!(resource_owner = nil, authorization_expires_at = nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/oauth2/provider/rack/authorization_code_request.rb', line 25

def grant!(resource_owner = nil, authorization_expires_at = nil)
  grant = client.authorizations.create!(
    :resource_owner => resource_owner,
    :client => client,
    :scope => scope,
    :expires_at => authorization_expires_at
  )
  code = grant.authorization_codes.create! :redirect_uri => redirect_uri
  throw_response Responses.redirect_with_code(code.code, redirect_uri)
end

#invalid_scope!Object



40
41
42
# File 'lib/oauth2/provider/rack/authorization_code_request.rb', line 40

def invalid_scope!
  throw_response Responses.redirect_with_error('invalid_scope', redirect_uri)
end

#redirect_uriObject



52
53
54
# File 'lib/oauth2/provider/rack/authorization_code_request.rb', line 52

def redirect_uri
  @params['redirect_uri']
end

#redirect_uri_valid?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/oauth2/provider/rack/authorization_code_request.rb', line 56

def redirect_uri_valid?
  client && client.allow_redirection?(redirect_uri)
end

#scopeObject



60
61
62
# File 'lib/oauth2/provider/rack/authorization_code_request.rb', line 60

def scope
  @params['scope']
end

#validate!Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/oauth2/provider/rack/authorization_code_request.rb', line 7

def validate!
  unless client_id
    raise OAuth2::Provider::Rack::InvalidRequest, 'No client_id provided'
  end

  unless client
    raise OAuth2::Provider::Rack::InvalidRequest, 'client_id is invalid'
  end

  unless redirect_uri
    raise OAuth2::Provider::Rack::InvalidRequest, 'No redirect_uri provided'
  end

  unless redirect_uri_valid?
    raise OAuth2::Provider::Rack::InvalidRequest, 'Provided redirect_uri is invalid'
  end
end