Class: OAuth2::AccessToken
- Inherits:
-
Object
- Object
- OAuth2::AccessToken
- Defined in:
- lib/oauth2/access_token.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#expires_at ⇒ Object
readonly
Returns the value of attribute expires_at.
-
#expires_in ⇒ Object
readonly
Returns the value of attribute expires_in.
-
#options ⇒ Object
Returns the value of attribute options.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#refresh_token ⇒ Object
Returns the value of attribute refresh_token.
-
#token ⇒ Object
readonly
Returns the value of attribute token.
Class Method Summary collapse
-
.from_hash(client, hash) ⇒ AccessToken
Initializes an AccessToken from a Hash.
-
.from_kvform(client, kvform) ⇒ AccessToken
Initializes an AccessToken from a key/value application/x-www-form-urlencoded string.
Instance Method Summary collapse
-
#[](key) ⇒ Object
Indexer to additional params present in token response.
-
#delete(path, opts = {}, &block) ⇒ Object
Make a DELETE request with the Access Token.
-
#expired? ⇒ Boolean
Whether or not the token is expired.
-
#expires? ⇒ Boolean
Whether or not the token expires.
-
#get(path, opts = {}, &block) ⇒ Object
Make a GET request with the Access Token.
-
#headers ⇒ Object
Get the headers hash (includes Authorization token).
-
#initialize(client, token, opts = {}) ⇒ AccessToken
constructor
Initalize an AccessToken.
-
#patch(path, opts = {}, &block) ⇒ Object
Make a PATCH request with the Access Token.
-
#post(path, opts = {}, &block) ⇒ Object
Make a POST request with the Access Token.
-
#put(path, opts = {}, &block) ⇒ Object
Make a PUT request with the Access Token.
-
#refresh!(params = {}) ⇒ AccessToken
Refreshes the current Access Token.
-
#request(verb, path, opts = {}, &block) ⇒ Object
Make a request with the Access Token.
-
#to_hash ⇒ Hash
Convert AccessToken to a hash which can be used to rebuild itself with AccessToken.from_hash.
Constructor Details
#initialize(client, token, opts = {}) ⇒ AccessToken
Initalize an AccessToken
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/oauth2/access_token.rb', line 40 def initialize(client, token, opts = {}) # rubocop:disable Metrics/AbcSize @client = client @token = token.to_s opts = opts.dup [:refresh_token, :expires_in, :expires_at].each do |arg| instance_variable_set("@#{arg}", opts.delete(arg) || opts.delete(arg.to_s)) end @expires_in ||= opts.delete('expires') @expires_in &&= @expires_in.to_i @expires_at &&= @expires_at.to_i @expires_at ||= Time.now.to_i + @expires_in if @expires_in @options = {:mode => opts.delete(:mode) || :header, :header_format => opts.delete(:header_format) || 'Bearer %s', :param_name => opts.delete(:param_name) || 'access_token'} @params = opts end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
3 4 5 |
# File 'lib/oauth2/access_token.rb', line 3 def client @client end |
#expires_at ⇒ Object (readonly)
Returns the value of attribute expires_at.
3 4 5 |
# File 'lib/oauth2/access_token.rb', line 3 def expires_at @expires_at end |
#expires_in ⇒ Object (readonly)
Returns the value of attribute expires_in.
3 4 5 |
# File 'lib/oauth2/access_token.rb', line 3 def expires_in @expires_in end |
#options ⇒ Object
Returns the value of attribute options.
4 5 6 |
# File 'lib/oauth2/access_token.rb', line 4 def @options end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
3 4 5 |
# File 'lib/oauth2/access_token.rb', line 3 def params @params end |
#refresh_token ⇒ Object
Returns the value of attribute refresh_token.
4 5 6 |
# File 'lib/oauth2/access_token.rb', line 4 def refresh_token @refresh_token end |
#token ⇒ Object
Returns the value of attribute token.
3 4 5 |
# File 'lib/oauth2/access_token.rb', line 3 def token @token end |
Class Method Details
.from_hash(client, hash) ⇒ AccessToken
Initializes an AccessToken from a Hash
12 13 14 15 |
# File 'lib/oauth2/access_token.rb', line 12 def from_hash(client, hash) hash = hash.dup new(client, hash.delete('access_token') || hash.delete(:access_token), hash) end |
.from_kvform(client, kvform) ⇒ AccessToken
Initializes an AccessToken from a key/value application/x-www-form-urlencoded string
22 23 24 |
# File 'lib/oauth2/access_token.rb', line 22 def from_kvform(client, kvform) from_hash(client, Rack::Utils.parse_query(kvform)) end |
Instance Method Details
#[](key) ⇒ Object
Indexer to additional params present in token response
60 61 62 |
# File 'lib/oauth2/access_token.rb', line 60 def [](key) @params[key] end |
#delete(path, opts = {}, &block) ⇒ Object
Make a DELETE request with the Access Token
143 144 145 |
# File 'lib/oauth2/access_token.rb', line 143 def delete(path, opts = {}, &block) request(:delete, path, opts, &block) end |
#expired? ⇒ Boolean
Whether or not the token is expired
74 75 76 |
# File 'lib/oauth2/access_token.rb', line 74 def expired? expires? && (expires_at < Time.now.to_i) end |
#expires? ⇒ Boolean
Whether or not the token expires
67 68 69 |
# File 'lib/oauth2/access_token.rb', line 67 def expires? !!@expires_at end |
#get(path, opts = {}, &block) ⇒ Object
Make a GET request with the Access Token
115 116 117 |
# File 'lib/oauth2/access_token.rb', line 115 def get(path, opts = {}, &block) request(:get, path, opts, &block) end |
#headers ⇒ Object
Get the headers hash (includes Authorization token)
148 149 150 |
# File 'lib/oauth2/access_token.rb', line 148 def headers {'Authorization' => [:header_format] % token} end |
#patch(path, opts = {}, &block) ⇒ Object
Make a PATCH request with the Access Token
136 137 138 |
# File 'lib/oauth2/access_token.rb', line 136 def patch(path, opts = {}, &block) request(:patch, path, opts, &block) end |
#post(path, opts = {}, &block) ⇒ Object
Make a POST request with the Access Token
122 123 124 |
# File 'lib/oauth2/access_token.rb', line 122 def post(path, opts = {}, &block) request(:post, path, opts, &block) end |
#put(path, opts = {}, &block) ⇒ Object
Make a PUT request with the Access Token
129 130 131 |
# File 'lib/oauth2/access_token.rb', line 129 def put(path, opts = {}, &block) request(:put, path, opts, &block) end |
#refresh!(params = {}) ⇒ AccessToken
options should be carried over to the new AccessToken
Refreshes the current Access Token
82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/oauth2/access_token.rb', line 82 def refresh!(params = {}) raise('A refresh_token is not available') unless refresh_token params[:client_id] = @client.id params[:client_secret] = @client.secret params[:grant_type] = 'refresh_token' params[:refresh_token] = refresh_token new_token = @client.get_token(params) new_token. = new_token.refresh_token = refresh_token unless new_token.refresh_token new_token end |
#request(verb, path, opts = {}, &block) ⇒ Object
Make a request with the Access Token
107 108 109 110 |
# File 'lib/oauth2/access_token.rb', line 107 def request(verb, path, opts = {}, &block) self.token = opts @client.request(verb, path, opts, &block) end |
#to_hash ⇒ Hash
Convert AccessToken to a hash which can be used to rebuild itself with AccessToken.from_hash
97 98 99 |
# File 'lib/oauth2/access_token.rb', line 97 def to_hash params.merge(:access_token => token, :refresh_token => refresh_token, :expires_at => expires_at) end |