Merge pull request #19 from simplymeasured/feature/make-autorefresh-of-token-optional
Make the auto-refresh of tokens configurable and optional
This commit is contained in:
commit
6b9d4bc879
|
@ -47,6 +47,10 @@ module Google
|
||||||
# <li><code>:oauth_1</code></li>
|
# <li><code>:oauth_1</code></li>
|
||||||
# <li><code>:oauth_2</code></li>
|
# <li><code>:oauth_2</code></li>
|
||||||
# </ul>
|
# </ul>
|
||||||
|
# @option options [Boolean] :auto_refresh_token (true)
|
||||||
|
# The setting that controls whether or not the api client attempts to
|
||||||
|
# refresh authorization when a 401 is hit in #execute. If the token does
|
||||||
|
# not support it, this option is ignored.
|
||||||
# @option options [String] :application_name
|
# @option options [String] :application_name
|
||||||
# The name of the application using the client.
|
# The name of the application using the client.
|
||||||
# @option options [String] :application_version
|
# @option options [String] :application_version
|
||||||
|
@ -89,6 +93,7 @@ module Google
|
||||||
# default authentication mechanisms.
|
# default authentication mechanisms.
|
||||||
self.authorization =
|
self.authorization =
|
||||||
options.key?(:authorization) ? options[:authorization] : :oauth_2
|
options.key?(:authorization) ? options[:authorization] : :oauth_2
|
||||||
|
self.auto_refresh_token = options.fetch(:auto_refresh_token){ true }
|
||||||
self.key = options[:key]
|
self.key = options[:key]
|
||||||
self.user_ip = options[:user_ip]
|
self.user_ip = options[:user_ip]
|
||||||
@discovery_uris = {}
|
@discovery_uris = {}
|
||||||
|
@ -159,6 +164,13 @@ module Google
|
||||||
# @return [String] The API key.
|
# @return [String] The API key.
|
||||||
attr_accessor :key
|
attr_accessor :key
|
||||||
|
|
||||||
|
##
|
||||||
|
# The setting that controls whether or not the api client attempts to
|
||||||
|
# refresh authorization when a 401 is hit in #execute.
|
||||||
|
#
|
||||||
|
# @return [Boolean]
|
||||||
|
attr_accessor :auto_refresh_token
|
||||||
|
|
||||||
##
|
##
|
||||||
# The IP address of the user this request is being performed on behalf of.
|
# The IP address of the user this request is being performed on behalf of.
|
||||||
#
|
#
|
||||||
|
@ -540,7 +552,7 @@ module Google
|
||||||
request.authorization = options[:authorization] || self.authorization unless options[:authenticated] == false
|
request.authorization = options[:authorization] || self.authorization unless options[:authenticated] == false
|
||||||
|
|
||||||
result = request.send(connection)
|
result = request.send(connection)
|
||||||
if result.status == 401 && authorization.respond_to?(:refresh_token)
|
if result.status == 401 && authorization.respond_to?(:refresh_token) && auto_refresh_token
|
||||||
begin
|
begin
|
||||||
authorization.fetch_access_token!
|
authorization.fetch_access_token!
|
||||||
result = request.send(connection)
|
result = request.send(connection)
|
||||||
|
|
Loading…
Reference in New Issue