|
28 | 28 | class Credentials(object): |
29 | 29 | """An Application Framework credentials object.""" |
30 | 30 |
|
31 | | - def __init__(self, auth_base_url=None, client_id=None, client_secret=None, |
32 | | - instance_id=None, profile=None, redirect_uri=None, |
33 | | - region=None, refresh_token=None, scope=None, |
34 | | - storage_adapter=None, token_url=None, token_revoke_url=None, |
35 | | - **kwargs): |
| 31 | + def __init__(self, auth_base_url=None, cache_token=True, |
| 32 | + client_id=None, client_secret=None, instance_id=None, |
| 33 | + profile=None, redirect_uri=None, region=None, |
| 34 | + refresh_token=None, scope=None, storage_adapter=None, |
| 35 | + token_url=None, token_revoke_url=None, **kwargs): |
36 | 36 | """Persist Session() and credentials attributes. |
37 | 37 |
|
38 | 38 | Built on top of the ``Requests`` library, ``Credentials`` is an |
@@ -65,6 +65,7 @@ def __init__(self, auth_base_url=None, client_id=None, client_secret=None, |
65 | 65 | """ |
66 | 66 | self.access_token_ = None |
67 | 67 | self.auth_base_url = auth_base_url or BASE_URL |
| 68 | + self.cache_token_ = cache_token |
68 | 69 | self.client_id_ = client_id |
69 | 70 | self.client_secret_ = client_secret |
70 | 71 | self.environ = os.environ |
@@ -106,6 +107,10 @@ def access_token(self): |
106 | 107 | """Get access_token""" |
107 | 108 | return self.access_token_ |
108 | 109 |
|
| 110 | + @property |
| 111 | + def cache_token(self): |
| 112 | + return self.cache_token_ |
| 113 | + |
109 | 114 | @property |
110 | 115 | def client_id(self): |
111 | 116 | """Get client_id""" |
@@ -239,7 +244,11 @@ def get_credentials(self): |
239 | 244 | class: Read-only credentials. |
240 | 245 |
|
241 | 246 | """ |
242 | | - access_token = self.access_token_ |
| 247 | + if self.cache_token: |
| 248 | + access_token = self._resolve_credential( |
| 249 | + 'access_token') or self.access_token_ |
| 250 | + else: |
| 251 | + access_token = self.access_token_ |
243 | 252 | client_id = self.client_id_ or self._resolve_credential( |
244 | 253 | 'client_id') |
245 | 254 | client_secret = self.client_secret_ or self._resolve_credential( |
@@ -358,5 +367,6 @@ def write_credentials(self): |
358 | 367 | """ |
359 | 368 | c = self.get_credentials() |
360 | 369 | return self.storage().write_credentials( |
361 | | - credentials=c, profile=self.profile |
| 370 | + credentials=c, profile=self.profile, |
| 371 | + cache_token=self.cache_token_ |
362 | 372 | ) |
0 commit comments