Class: Oauth2Token
- Inherits:
-
AccessToken
show all
- Defined in:
- lib/oauth/models/consumers/services/oauth2_token.rb,
lib/generators/mongoid/oauth_provider_templates/oauth2_token.rb,
lib/generators/active_record/oauth_provider_templates/oauth2_token.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from OauthToken
#authorized?, #invalidate!, #invalidated?
Instance Attribute Details
#state ⇒ Object
Returns the value of attribute state.
2
3
4
|
# File 'lib/generators/mongoid/oauth_provider_templates/oauth2_token.rb', line 2
def state
@state
end
|
Class Method Details
.access_token(user, code, redirect_uri) ⇒ Object
19
20
21
22
|
# File 'lib/oauth/models/consumers/services/oauth2_token.rb', line 19
def self.access_token(user, code, redirect_uri)
access_token = consumer.auth_code.get_token(code, :redirect_uri => redirect_uri)
find_or_create_from_access_token user, access_token
end
|
.authorize_url(callback_url) ⇒ Object
13
14
15
16
17
|
# File 'lib/oauth/models/consumers/services/oauth2_token.rb', line 13
def self.authorize_url(callback_url)
options = {:redirect_uri=>callback_url}
options[:scope] = credentials[:scope] if credentials[:scope].present?
consumer.auth_code.authorize_url(options)
end
|
.consumer ⇒ Object
5
6
7
|
# File 'lib/oauth/models/consumers/services/oauth2_token.rb', line 5
def self.consumer
@consumer||=create_consumer
end
|
.create_consumer(options = {}) ⇒ Object
9
10
11
|
# File 'lib/oauth/models/consumers/services/oauth2_token.rb', line 9
def self.create_consumer(options={})
@consumer||=OAuth2::Client.new credentials[:key],credentials[:secret],credentials[:options]
end
|
Instance Method Details
#as_json(options = {}) ⇒ Object
3
4
5
6
7
|
# File 'lib/generators/mongoid/oauth_provider_templates/oauth2_token.rb', line 3
def as_json(options={})
d = {:access_token=>token, :token_type => 'bearer'}
d[:expires_in] = expires_in if expires_at
d
end
|
#client ⇒ Object
24
25
26
|
# File 'lib/oauth/models/consumers/services/oauth2_token.rb', line 24
def client
@client ||= OAuth2::AccessToken.new self.class.consumer, token, {refresh_token: refresh_token, expires_at: expires_at, expires_in: expires_in }
end
|
#ensure_access ⇒ Object
Refreshes the access token to ensure access
35
36
37
|
# File 'lib/oauth/models/consumers/services/oauth2_token.rb', line 35
def ensure_access
self.class.find_or_create_from_access_token user, self, client.refresh!
end
|
#expiration_date(token) ⇒ String
Note:
It will return the default expiration time as defined in the OAuth 2.0 spec when no options are set
Returns the expiration date (expires_in, expires_at)
43
44
45
46
47
48
|
# File 'lib/oauth/models/consumers/services/oauth2_token.rb', line 43
def expiration_date(token)
return token.expires_in, token.expires_at if !token.expires_in.nil? and !token.expires_at.nil?
return token.expires_in, (Time.now.to_i + token.expires_in.to_i) if token.expires_at.nil? and !token.expires_in.nil?
return (token.expires_at.to_i - Time.now.to_i), token.expires_at if token.expires_in.nil? and !token.expires_at.nil?
return "3600", (Time.now.to_i + 3600)
end
|
#expired_and_existing? ⇒ Boolean
Returns Is the access token expired and does the record exist in the datastore?.
29
30
31
32
|
# File 'lib/oauth/models/consumers/services/oauth2_token.rb', line 29
def expired_and_existing?
return true if !self.new_record? and Time.now.to_i >= self.expires_at.to_i
false
end
|
#expires_in ⇒ Object
17
18
19
|
# File 'lib/generators/mongoid/oauth_provider_templates/oauth2_token.rb', line 17
def expires_in
expires_at.to_i - Time.now.to_i
end
|
#to_query ⇒ Object
9
10
11
12
13
14
15
|
# File 'lib/generators/mongoid/oauth_provider_templates/oauth2_token.rb', line 9
def to_query
q = "access_token=#{token}&token_type=bearer"
q << "&state=#{URI.escape(state)}" if @state
q << "&expires_in=#{expires_in}" if expires_at
q << "&scope=#{URI.escape(scope)}" if scope
q
end
|