|
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