@@ -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,19 @@ 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 (
154
+ params : OAuthCredentialOptions | OAuthCredentialParams
155
+ ) : externs . OAuthCredential {
156
+ _assert ( params . idToken || params . accessToken , AuthErrorCode . ARGUMENT_ERROR ) ;
150
157
// For OAuthCredential, sign in method is same as providerId.
151
158
return OAuthCredential . _fromParams ( {
159
+ ...params ,
152
160
providerId : this . providerId ,
153
- signInMethod : this . providerId ,
154
- ...params
161
+ signInMethod : this . providerId
155
162
} ) ;
156
163
}
157
164
@@ -265,10 +272,11 @@ export class OAuthProvider implements externs.AuthProvider {
265
272
}
266
273
267
274
try {
268
- return new OAuthProvider ( providerId ) . credential ( {
275
+ return new OAuthProvider ( providerId ) . _credential ( {
269
276
idToken : oauthIdToken ,
270
277
accessToken : oauthAccessToken ,
271
- rawNonce : nonce
278
+ rawNonce : nonce ,
279
+ pendingToken
272
280
} ) ;
273
281
} catch ( e ) {
274
282
return null ;
0 commit comments