@@ -98,7 +98,10 @@ def __init__(self, **kwargs):
98
98
99
99
if self .credentials :
100
100
self ._apply_credentials (
101
- self .credentials , self .session .headers )
101
+ auto_refresh = self .auto_refresh ,
102
+ credentials = self .credentials ,
103
+ headers = self .session .headers
104
+ )
102
105
103
106
def __repr__ (self ):
104
107
for k in self .kwargs .get ('headers' , {}):
@@ -118,22 +121,26 @@ def __repr__(self):
118
121
)
119
122
120
123
@staticmethod
121
- def _apply_credentials (credentials , headers ):
124
+ def _apply_credentials (auto_refresh = True , credentials = None ,
125
+ headers = None ):
122
126
"""Update Authorization header.
123
127
124
128
Update request headers with latest `access_token`. Perform token
125
129
`refresh` if token is ``None``.
126
130
127
131
Args:
132
+ auto_refresh (bool): Perform token refresh if access_token is ``None`` or expired. Defaults to ``True``.
128
133
credentials (class): Read-only credentials.
129
134
headers (class): Requests `CaseInsensitiveDict`.
130
135
131
136
"""
132
137
token = credentials .get_credentials ().access_token
133
- if token is None :
134
- token = credentials .refresh (access_token = None , timeout = 10 )
135
- elif credentials .jwt_is_expired ():
136
- token = credentials .refresh (timeout = 10 )
138
+ if auto_refresh is True :
139
+ if token is None :
140
+ token = credentials .refresh (
141
+ access_token = None , timeout = 10 )
142
+ elif credentials .jwt_is_expired ():
143
+ token = credentials .refresh (timeout = 10 )
137
144
headers .update (
138
145
{'Authorization' : "Bearer {}" .format (token )}
139
146
)
@@ -263,12 +270,15 @@ def request(self, **kwargs):
263
270
r = self ._send_request (
264
271
enforce_json , method , raise_for_status , url , ** k
265
272
)
273
+ # TODO remove the following if statement
266
274
if r .status_code == 401 :
267
275
if credentials and auto_refresh :
268
276
token = credentials .get_credentials ().access_token
269
277
credentials .refresh (access_token = token , timeout = 10 )
270
278
self ._apply_credentials (
271
- credentials , headers or self .session .headers
279
+ auto_refresh = auto_refresh ,
280
+ credentials = credentials ,
281
+ headers = headers or self .session .headers
272
282
)
273
283
if auto_retry :
274
284
r = self ._send_request (
0 commit comments