@@ -669,6 +669,7 @@ export class OAuth2Client extends AuthClient {
669669 code_verifier : options . codeVerifier ,
670670 } ;
671671 const res = await this . transporter . request < CredentialRequest > ( {
672+ ...OAuth2Client . RETRY_CONFIG ,
672673 method : 'POST' ,
673674 url,
674675 data : querystring . stringify ( values ) ,
@@ -733,6 +734,7 @@ export class OAuth2Client extends AuthClient {
733734 try {
734735 // request for new token
735736 res = await this . transporter . request < CredentialRequest > ( {
737+ ...OAuth2Client . RETRY_CONFIG ,
736738 method : 'POST' ,
737739 url,
738740 data : querystring . stringify ( data ) ,
@@ -956,6 +958,7 @@ export class OAuth2Client extends AuthClient {
956958 callback ?: BodyResponseCallback < RevokeCredentialsResult >
957959 ) : GaxiosPromise < RevokeCredentialsResult > | void {
958960 const opts : GaxiosOptions = {
961+ ...OAuth2Client . RETRY_CONFIG ,
959962 url : this . getRevokeTokenURL ( token ) . toString ( ) ,
960963 method : 'POST' ,
961964 } ;
@@ -1024,7 +1027,7 @@ export class OAuth2Client extends AuthClient {
10241027
10251028 protected async requestAsync < T > (
10261029 opts : GaxiosOptions ,
1027- retry = false
1030+ reAuthRetried = false
10281031 ) : Promise < GaxiosResponse < T > > {
10291032 let r2 : GaxiosResponse ;
10301033 try {
@@ -1078,11 +1081,16 @@ export class OAuth2Client extends AuthClient {
10781081 this . refreshHandler ;
10791082 const isReadableStream = res . config . data instanceof stream . Readable ;
10801083 const isAuthErr = statusCode === 401 || statusCode === 403 ;
1081- if ( ! retry && isAuthErr && ! isReadableStream && mayRequireRefresh ) {
1084+ if (
1085+ ! reAuthRetried &&
1086+ isAuthErr &&
1087+ ! isReadableStream &&
1088+ mayRequireRefresh
1089+ ) {
10821090 await this . refreshAccessTokenAsync ( ) ;
10831091 return this . requestAsync < T > ( opts , true ) ;
10841092 } else if (
1085- ! retry &&
1093+ ! reAuthRetried &&
10861094 isAuthErr &&
10871095 ! isReadableStream &&
10881096 mayRequireRefreshWithNoRefreshToken
@@ -1157,6 +1165,7 @@ export class OAuth2Client extends AuthClient {
11571165 */
11581166 async getTokenInfo ( accessToken : string ) : Promise < TokenInfo > {
11591167 const { data} = await this . transporter . request < TokenInfoRequest > ( {
1168+ ...OAuth2Client . RETRY_CONFIG ,
11601169 method : 'POST' ,
11611170 headers : {
11621171 'Content-Type' : 'application/x-www-form-urlencoded' ,
@@ -1222,7 +1231,10 @@ export class OAuth2Client extends AuthClient {
12221231 throw new Error ( `Unsupported certificate format ${ format } ` ) ;
12231232 }
12241233 try {
1225- res = await this . transporter . request ( { url} ) ;
1234+ res = await this . transporter . request ( {
1235+ ...OAuth2Client . RETRY_CONFIG ,
1236+ url,
1237+ } ) ;
12261238 } catch ( e ) {
12271239 if ( e instanceof Error ) {
12281240 e . message = `Failed to retrieve verification certificates: ${ e . message } ` ;
@@ -1290,7 +1302,10 @@ export class OAuth2Client extends AuthClient {
12901302 const url = this . endpoints . oauth2IapPublicKeyUrl . toString ( ) ;
12911303
12921304 try {
1293- res = await this . transporter . request ( { url} ) ;
1305+ res = await this . transporter . request ( {
1306+ ...OAuth2Client . RETRY_CONFIG ,
1307+ url,
1308+ } ) ;
12941309 } catch ( e ) {
12951310 if ( e instanceof Error ) {
12961311 e . message = `Failed to retrieve verification certificates: ${ e . message } ` ;
0 commit comments