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