@@ -20,7 +20,7 @@ import * as externs from '@firebase/auth-types-exp';
20
20
import { _assert } from '../util/assert' ;
21
21
import { AuthErrorCode } from '../errors' ;
22
22
23
- import { OAuthCredential } from '../credentials/oauth' ;
23
+ import { OAuthCredential , OAuthCredentialParams } from '../credentials/oauth' ;
24
24
import { UserCredential } from '../../model/user' ;
25
25
import { FirebaseError } from '@firebase/util' ;
26
26
import { TaggedWithTokenResponse } from '../../model/id_token' ;
@@ -146,12 +146,17 @@ export class OAuthProvider implements externs.AuthProvider {
146
146
* or the ID token string.
147
147
*/
148
148
credential ( params : OAuthCredentialOptions ) : externs . OAuthCredential {
149
- _assert ( params . idToken && params . accessToken , AuthErrorCode . ARGUMENT_ERROR ) ;
149
+ return this . _credential ( params ) ;
150
+ }
151
+
152
+ /** An internal credential method that accepts more permissive options */
153
+ private _credential ( params : OAuthCredentialOptions | OAuthCredentialParams ) : externs . OAuthCredential {
154
+ _assert ( params . idToken || params . accessToken , AuthErrorCode . ARGUMENT_ERROR ) ;
150
155
// For OAuthCredential, sign in method is same as providerId.
151
156
return OAuthCredential . _fromParams ( {
157
+ ...params ,
152
158
providerId : this . providerId ,
153
159
signInMethod : this . providerId ,
154
- ...params
155
160
} ) ;
156
161
}
157
162
@@ -265,10 +270,11 @@ export class OAuthProvider implements externs.AuthProvider {
265
270
}
266
271
267
272
try {
268
- return new OAuthProvider ( providerId ) . credential ( {
273
+ return new OAuthProvider ( providerId ) . _credential ( {
269
274
idToken : oauthIdToken ,
270
275
accessToken : oauthAccessToken ,
271
- rawNonce : nonce
276
+ rawNonce : nonce ,
277
+ pendingToken,
272
278
} ) ;
273
279
} catch ( e ) {
274
280
return null ;
0 commit comments