chore: support string type response.data for gcloud (#503)
diff --git a/google/auth/impersonated_credentials.py b/google/auth/impersonated_credentials.py
index 1bb6b82..c2351e7 100644
--- a/google/auth/impersonated_credentials.py
+++ b/google/auth/impersonated_credentials.py
@@ -88,13 +88,17 @@
response = request(url=iam_endpoint, method="POST", headers=headers, body=body)
- response_body = response.data.decode("utf-8")
+ response_body = (
+ response.data.decode("utf-8")
+ if hasattr(response.data, "decode")
+ else response.data
+ )
if response.status != http_client.OK:
exceptions.RefreshError(_REFRESH_ERROR, response_body)
try:
- token_response = json.loads(response.data.decode("utf-8"))
+ token_response = json.loads(response_body)
token = token_response["accessToken"]
expiry = datetime.strptime(token_response["expireTime"], "%Y-%m-%dT%H:%M:%SZ")