Skip to content

Commit 49f3613

Browse files
committed
Renamed AuthCredential into OAuthCredential and added extra optional … (#255)
1 parent 5733782 commit 49f3613

File tree

5 files changed

+53
-30
lines changed

5 files changed

+53
-30
lines changed

packages/firebase-dart/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 7.0.0-dev
2+
3+
- **BREAKING** renamed `AuthCredential` into `OAuthCredential` to align with JS API
4+
- Added `idToken`, `accessToken` and `secret` to `OAuthCredential`
5+
16
## 6.0.0
27

38
- **BREAKING** Removed and renamed members across `auth` and `firestore` to

packages/firebase-dart/lib/src/auth.dart

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export 'interop/auth_interop.dart'
1515
show
1616
ActionCodeInfo,
1717
ActionCodeEmail,
18-
AuthCredential,
18+
OAuthCredential,
1919
ActionCodeSettings,
2020
IosSettings,
2121
AndroidSettings,
@@ -107,7 +107,7 @@ class User extends UserInfo<firebase_interop.UserJsImpl> {
107107

108108
/// Links the user account with the given credentials, and returns any
109109
/// available additional user information, such as user name.
110-
Future<UserCredential> linkWithCredential(AuthCredential credential) =>
110+
Future<UserCredential> linkWithCredential(OAuthCredential credential) =>
111111
handleThenable(jsObject.linkWithCredential(credential))
112112
.then((u) => UserCredential.fromJsObject(u));
113113

@@ -136,7 +136,7 @@ class User extends UserInfo<firebase_interop.UserJsImpl> {
136136
/// Re-authenticates a user using a fresh credential, and returns any
137137
/// available additional user information, such as user name.
138138
Future<UserCredential> reauthenticateWithCredential(
139-
AuthCredential credential) =>
139+
OAuthCredential credential) =>
140140
handleThenable(jsObject.reauthenticateWithCredential(credential))
141141
.then((o) => UserCredential.fromJsObject(o));
142142

@@ -202,7 +202,7 @@ class User extends UserInfo<firebase_interop.UserJsImpl> {
202202
handleThenable(jsObject.updatePassword(newPassword));
203203

204204
/// Updates the user's phone number.
205-
Future updatePhoneNumber(AuthCredential phoneCredential) =>
205+
Future updatePhoneNumber(OAuthCredential phoneCredential) =>
206206
handleThenable(jsObject.updatePhoneNumber(phoneCredential));
207207

208208
/// Updates a user's [profile] data.
@@ -416,7 +416,7 @@ class Auth extends JsObjectWrapper<AuthJsImpl> {
416416

417417
/// Asynchronously signs in with the given credentials, and returns any
418418
/// available additional user information, such as user name.
419-
Future<UserCredential> signInWithCredential(AuthCredential credential) =>
419+
Future<UserCredential> signInWithCredential(OAuthCredential credential) =>
420420
handleThenable(jsObject.signInWithCredential(credential))
421421
.then((u) => UserCredential.fromJsObject(u));
422422

@@ -534,7 +534,7 @@ class EmailAuthProvider extends AuthProvider<EmailAuthProviderJsImpl> {
534534
: super.fromJsObject(jsObject);
535535

536536
/// Creates a credential for e-mail.
537-
static AuthCredential credential(String email, String password) =>
537+
static OAuthCredential credential(String email, String password) =>
538538
EmailAuthProviderJsImpl.credential(email, password);
539539
}
540540

@@ -570,7 +570,7 @@ class FacebookAuthProvider extends AuthProvider<FacebookAuthProviderJsImpl> {
570570
jsObject.setCustomParameters(jsify(customOAuthParameters)));
571571

572572
/// Creates a credential for Facebook.
573-
static AuthCredential credential(String token) =>
573+
static OAuthCredential credential(String token) =>
574574
FacebookAuthProviderJsImpl.credential(token);
575575
}
576576

@@ -606,7 +606,7 @@ class GithubAuthProvider extends AuthProvider<GithubAuthProviderJsImpl> {
606606
jsObject.setCustomParameters(jsify(customOAuthParameters)));
607607

608608
/// Creates a credential for GitHub.
609-
static AuthCredential credential(String token) =>
609+
static OAuthCredential credential(String token) =>
610610
GithubAuthProviderJsImpl.credential(token);
611611
}
612612

@@ -644,7 +644,7 @@ class GoogleAuthProvider extends AuthProvider<GoogleAuthProviderJsImpl> {
644644

645645
/// Creates a credential for Google.
646646
/// At least one of [idToken] and [accessToken] is required.
647-
static AuthCredential credential([String idToken, String accessToken]) =>
647+
static OAuthCredential credential([String idToken, String accessToken]) =>
648648
GoogleAuthProviderJsImpl.credential(idToken, accessToken);
649649
}
650650

@@ -676,7 +676,7 @@ class OAuthProvider extends AuthProvider<OAuthProviderJsImpl> {
676676

677677
/// Creates a credential for Google.
678678
/// At least one of [idToken] and [accessToken] is required.
679-
AuthCredential credential([String idToken, String accessToken]) =>
679+
OAuthCredential credential([String idToken, String accessToken]) =>
680680
jsObject.credential(idToken, accessToken);
681681
}
682682

@@ -705,7 +705,7 @@ class TwitterAuthProvider extends AuthProvider<TwitterAuthProviderJsImpl> {
705705
jsObject.setCustomParameters(jsify(customOAuthParameters)));
706706

707707
/// Creates a credential for Twitter.
708-
static AuthCredential credential(String token, String secret) =>
708+
static OAuthCredential credential(String token, String secret) =>
709709
TwitterAuthProviderJsImpl.credential(token, secret);
710710
}
711711

@@ -740,7 +740,7 @@ class PhoneAuthProvider extends AuthProvider<PhoneAuthProviderJsImpl> {
740740
/// Creates a phone auth credential given the verification ID
741741
/// from [verifyPhoneNumber] and the [verificationCode] that was sent to the
742742
/// user's mobile device.
743-
static AuthCredential credential(
743+
static OAuthCredential credential(
744744
String verificationId, String verificationCode) =>
745745
PhoneAuthProviderJsImpl.credential(verificationId, verificationCode);
746746
}
@@ -836,7 +836,7 @@ class ConfirmationResult extends JsObjectWrapper<ConfirmationResultJsImpl> {
836836
.then((u) => UserCredential.fromJsObject(u));
837837
}
838838

839-
/// A structure containing a [User], an [AuthCredential] and [operationType].
839+
/// A structure containing a [User], an [OAuthCredential] and [operationType].
840840
/// operationType could be 'signIn' for a sign-in operation, 'link' for a
841841
/// linking operation and 'reauthenticate' for a reauthentication operation.
842842
///
@@ -846,7 +846,7 @@ class UserCredential extends JsObjectWrapper<UserCredentialJsImpl> {
846846
User get user => User.getInstance(jsObject.user);
847847

848848
/// Returns the auth credential.
849-
AuthCredential get credential => jsObject.credential;
849+
OAuthCredential get credential => jsObject.credential;
850850

851851
/// Returns the operation type.
852852
String get operationType => jsObject.operationType;

packages/firebase-dart/lib/src/interop/auth_interop.dart

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ abstract class AuthJsImpl {
3535
external PromiseJsImpl<UserCredentialJsImpl> signInAnonymously();
3636

3737
external PromiseJsImpl<UserCredentialJsImpl> signInWithCredential(
38-
AuthCredential credential);
38+
OAuthCredential credential);
3939
external PromiseJsImpl<UserCredentialJsImpl> signInWithCustomToken(
4040
String token);
4141
external PromiseJsImpl<UserCredentialJsImpl>
@@ -74,11 +74,29 @@ class Persistence {
7474
/// Implementations specify the details about each auth provider's credential
7575
/// requirements.
7676
///
77-
/// See: <https://firebase.google.com/docs/reference/js/firebase.auth.AuthCredential>.
78-
@JS()
79-
abstract class AuthCredential {
77+
/// See: <https://firebase.google.com/docs/reference/js/firebase.auth.OAuthCredential>.
78+
@JS('OAuthCredential')
79+
abstract class OAuthCredential {
8080
/// The authentication provider ID for the credential.
8181
external String get providerId;
82+
83+
/// The OAuth access token associated with the credential if it belongs to
84+
/// an OAuth provider, such as facebook.com, twitter.com, etc.
85+
external String get accessToken;
86+
87+
/// The OAuth ID token associated with the credential if it belongs to an
88+
/// OIDC provider, such as google.com.
89+
external String get idToken;
90+
91+
/// The OAuth access token secret associated with the credential if it
92+
/// belongs to an OAuth 1.0 provider, such as twitter.com.
93+
external String get secret;
94+
95+
/// The authentication sign in method for the credential. For example,
96+
/// 'password', or 'emailLink. This corresponds to the sign-in method
97+
/// identifier as returned in: fetchsigninmethodsforemail
98+
/// See <https://firebase.google.com/docs/reference/js/firebase.auth.Auth.html#fetchsigninmethodsforemail>
99+
external String get signInMethod;
82100
}
83101

84102
@JS('AuthProvider')
@@ -90,7 +108,7 @@ abstract class AuthProviderJsImpl {
90108
class EmailAuthProviderJsImpl extends AuthProviderJsImpl {
91109
external factory EmailAuthProviderJsImpl();
92110
external static String get PROVIDER_ID;
93-
external static AuthCredential credential(String email, String password);
111+
external static OAuthCredential credential(String email, String password);
94112
}
95113

96114
@JS('FacebookAuthProvider')
@@ -100,7 +118,7 @@ class FacebookAuthProviderJsImpl extends AuthProviderJsImpl {
100118
external FacebookAuthProviderJsImpl addScope(String scope);
101119
external FacebookAuthProviderJsImpl setCustomParameters(
102120
customOAuthParameters);
103-
external static AuthCredential credential(String token);
121+
external static OAuthCredential credential(String token);
104122
}
105123

106124
@JS('GithubAuthProvider')
@@ -109,7 +127,7 @@ class GithubAuthProviderJsImpl extends AuthProviderJsImpl {
109127
external static String get PROVIDER_ID;
110128
external GithubAuthProviderJsImpl addScope(String scope);
111129
external GithubAuthProviderJsImpl setCustomParameters(customOAuthParameters);
112-
external static AuthCredential credential(String token);
130+
external static OAuthCredential credential(String token);
113131
}
114132

115133
@JS('GoogleAuthProvider')
@@ -118,7 +136,7 @@ class GoogleAuthProviderJsImpl extends AuthProviderJsImpl {
118136
external static String get PROVIDER_ID;
119137
external GoogleAuthProviderJsImpl addScope(String scope);
120138
external GoogleAuthProviderJsImpl setCustomParameters(customOAuthParameters);
121-
external static AuthCredential credential(
139+
external static OAuthCredential credential(
122140
[String idToken, String accessToken]);
123141
}
124142

@@ -127,15 +145,15 @@ class OAuthProviderJsImpl extends AuthProviderJsImpl {
127145
external factory OAuthProviderJsImpl(String providerId);
128146
external OAuthProviderJsImpl addScope(String scope);
129147
external OAuthProviderJsImpl setCustomParameters(customOAuthParameters);
130-
external AuthCredential credential([String idToken, String accessToken]);
148+
external OAuthCredential credential([String idToken, String accessToken]);
131149
}
132150

133151
@JS('TwitterAuthProvider')
134152
class TwitterAuthProviderJsImpl extends AuthProviderJsImpl {
135153
external factory TwitterAuthProviderJsImpl();
136154
external static String get PROVIDER_ID;
137155
external TwitterAuthProviderJsImpl setCustomParameters(customOAuthParameters);
138-
external static AuthCredential credential(String token, String secret);
156+
external static OAuthCredential credential(String token, String secret);
139157
}
140158

141159
@JS('PhoneAuthProvider')
@@ -145,7 +163,7 @@ class PhoneAuthProviderJsImpl extends AuthProviderJsImpl {
145163
external PromiseJsImpl<String> verifyPhoneNumber(
146164
String phoneNumber, ApplicationVerifierJsImpl applicationVerifier);
147165
// TODO official documentation says PromiseJsImpl<AuthCredential> return type
148-
external static AuthCredential credential(
166+
external static OAuthCredential credential(
149167
String verificationId, String verificationCode);
150168
}
151169

@@ -292,7 +310,7 @@ class AndroidSettings {
292310
@anonymous
293311
class UserCredentialJsImpl {
294312
external UserJsImpl get user;
295-
external AuthCredential get credential;
313+
external OAuthCredential get credential;
296314
external String get operationType;
297315
external AdditionalUserInfoJsImpl get additionalUserInfo;
298316
}

packages/firebase-dart/lib/src/interop/firebase_interop.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,15 @@ abstract class UserJsImpl extends UserInfoJsImpl {
4949
external PromiseJsImpl delete();
5050
external PromiseJsImpl<String> getIdToken([bool opt_forceRefresh]);
5151
external PromiseJsImpl<UserCredentialJsImpl> linkWithCredential(
52-
AuthCredential credential);
52+
OAuthCredential credential);
5353
external PromiseJsImpl<ConfirmationResultJsImpl> linkWithPhoneNumber(
5454
String phoneNumber, ApplicationVerifierJsImpl applicationVerifier);
5555
external PromiseJsImpl<UserCredentialJsImpl> linkWithPopup(
5656
AuthProviderJsImpl provider);
5757
external PromiseJsImpl linkWithRedirect(AuthProviderJsImpl provider);
5858

5959
external PromiseJsImpl reauthenticateWithCredential(
60-
AuthCredential credential);
60+
OAuthCredential credential);
6161
external PromiseJsImpl<ConfirmationResultJsImpl>
6262
reauthenticateWithPhoneNumber(
6363
String phoneNumber, ApplicationVerifierJsImpl applicationVerifier);
@@ -71,7 +71,7 @@ abstract class UserJsImpl extends UserInfoJsImpl {
7171
external PromiseJsImpl<UserJsImpl> unlink(String providerId);
7272
external PromiseJsImpl updateEmail(String newEmail);
7373
external PromiseJsImpl updatePassword(String newPassword);
74-
external PromiseJsImpl updatePhoneNumber(AuthCredential phoneCredential);
74+
external PromiseJsImpl updatePhoneNumber(OAuthCredential phoneCredential);
7575
external PromiseJsImpl updateProfile(UserProfile profile);
7676
external Object toJSON();
7777
}

packages/firebase-dart/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: firebase
22
description: Firebase libraries for Dart on the web and server
3-
version: 6.0.0
3+
version: 7.0.0-dev
44
authors:
55
- Jana Moudra <[email protected]>
66
- Kevin Moore <[email protected]>

0 commit comments

Comments
 (0)