Google Authentication Capacitor Plugin
npm install @kim5257/capacitor-google-authentication
npx cap sync
initialize(...)
verifyPhoneNumber(...)
confirmPhoneNumber(...)
createUserWithEmailAndPassword(...)
signInWithEmailAndPassword(...)
signInWithGoogle()
signInWithCustomToken(...)
signInWithApple()
getIdToken(...)
getCurrentUser()
updateProfile(...)
updateEmail(...)
signOut()
linkWithPhone(...)
confirmLinkPhoneNumber(...)
updatePhoneNumber(...)
confirmUpdatePhoneNumber(...)
echo(...)
addListener('google.auth.phone.verify.completed', ...)
addListener('google.auth.phone.code.sent', ...)
addListener('google.auth.phone.verify.failed', ...)
addListener('google.auth.state.update', ...)
- Interfaces
- Type Aliases
initialize(config: GoogleAuthenticationOptions) => Promise<{ result: 'success' | 'error'; }>
Param | Type |
---|---|
config |
GoogleAuthenticationOptions |
Returns: Promise<{ result: 'error' | 'success'; }>
verifyPhoneNumber(options: { phone: string; elem?: HTMLElement; }) => Promise<{ result: 'success' | 'error'; }>
Param | Type |
---|---|
options |
{ phone: string; elem?: any; } |
Returns: Promise<{ result: 'error' | 'success'; }>
confirmPhoneNumber(options: { code: string; }) => Promise<{ result: 'success' | 'error'; }>
Param | Type |
---|---|
options |
{ code: string; } |
Returns: Promise<{ result: 'error' | 'success'; }>
createUserWithEmailAndPassword(options: { email: string; password: string; }) => Promise<{ result: "success" | "error"; idToken: string; }>
Param | Type |
---|---|
options |
{ email: string; password: string; } |
Returns: Promise<{ result: 'error' | 'success'; idToken: string; }>
signInWithEmailAndPassword(options: { email: string; password: string; }) => Promise<{ result: "success" | "error"; idToken: string; }>
Param | Type |
---|---|
options |
{ email: string; password: string; } |
Returns: Promise<{ result: 'error' | 'success'; idToken: string; }>
signInWithGoogle() => Promise<{ result: "success" | "error"; idToken: string; }>
Returns: Promise<{ result: 'error' | 'success'; idToken: string; }>
signInWithCustomToken({ customToken }: { customToken: string; }) => Promise<{ result: "success" | "error"; idToken: string; }>
Param | Type |
---|---|
__0 |
{ customToken: string; } |
Returns: Promise<{ result: 'error' | 'success'; idToken: string; }>
signInWithApple() => Promise<{ result: "success" | "error"; idToken: string; }>
Returns: Promise<{ result: 'error' | 'success'; idToken: string; }>
getIdToken(options: { forceRefresh: boolean; }) => Promise<{ result: 'success' | 'error'; idToken: string; }>
Param | Type |
---|---|
options |
{ forceRefresh: boolean; } |
Returns: Promise<{ result: 'error' | 'success'; idToken: string; }>
getCurrentUser() => Promise<{ result: 'success' | 'error'; user: User | null | undefined; }>
Returns: Promise<{ result: 'error' | 'success'; user: User | null; }>
updateProfile(options: { displayName?: string; photoUri?: string; }) => Promise<{ result: 'success' | 'error'; }>
Param | Type |
---|---|
options |
{ displayName?: string; photoUri?: string; } |
Returns: Promise<{ result: 'error' | 'success'; }>
updateEmail(options: { email: string; }) => Promise<{ result: 'success' | 'error'; }>
Param | Type |
---|---|
options |
{ email: string; } |
Returns: Promise<{ result: 'error' | 'success'; }>
signOut() => Promise<{ result: 'success' | 'error'; }>
Returns: Promise<{ result: 'error' | 'success'; }>
linkWithPhone({ phone, elem }: { phone: string; elem: HTMLElement; }) => Promise<{ result: "success" | "error"; }>
Param | Type |
---|---|
__0 |
{ phone: string; elem: any; } |
Returns: Promise<{ result: 'error' | 'success'; }>
confirmLinkPhoneNumber(options: { code: string; }) => Promise<{ result: 'success' | 'error'; }>
Param | Type |
---|---|
options |
{ code: string; } |
Returns: Promise<{ result: 'error' | 'success'; }>
updatePhoneNumber({ phone, elem }: { phone: string; elem: HTMLElement; }) => Promise<{ result: "success" | "error"; }>
Param | Type |
---|---|
__0 |
{ phone: string; elem: any; } |
Returns: Promise<{ result: 'error' | 'success'; }>
confirmUpdatePhoneNumber(options: { code: string; }) => Promise<{ result: 'success' | 'error'; }>
Param | Type |
---|---|
options |
{ code: string; } |
Returns: Promise<{ result: 'error' | 'success'; }>
echo(options: { value: string; }) => Promise<{ value: string; }>
Param | Type |
---|---|
options |
{ value: string; } |
Returns: Promise<{ value: string; }>
addListener(eventName: 'google.auth.phone.verify.completed', listenerFunc: (resp: { idToken: string; }) => void) => Promise<PluginListenerHandle>
Param | Type |
---|---|
eventName |
'google.auth.phone.verify.completed' |
listenerFunc |
(resp: { idToken: string; }) => void |
Returns: Promise<PluginListenerHandle>
addListener(eventName: 'google.auth.phone.code.sent', listenerFunc: (resp: { verificationId: string | null; resendingToken: string | null; }) => void) => Promise<PluginListenerHandle>
Param | Type |
---|---|
eventName |
'google.auth.phone.code.sent' |
listenerFunc |
(resp: { verificationId: string | null; resendingToken: string | null; }) => void |
Returns: Promise<PluginListenerHandle>
addListener(eventName: 'google.auth.phone.verify.failed', listenerFunc: (resp: { message: string; }) => void) => Promise<PluginListenerHandle>
Param | Type |
---|---|
eventName |
'google.auth.phone.verify.failed' |
listenerFunc |
(resp: { message: string; }) => void |
Returns: Promise<PluginListenerHandle>
addListener(eventName: 'google.auth.state.update', listenerFunc: (resp: { idToken: string; }) => void) => Promise<PluginListenerHandle>
Param | Type |
---|---|
eventName |
'google.auth.state.update' |
listenerFunc |
(resp: { idToken: string; }) => void |
Returns: Promise<PluginListenerHandle>
Prop | Type |
---|---|
googleClientId |
string |
persistence |
'SESSION' | 'LOCAL' | 'MEMORY' |
A user account.
Prop | Type | Description |
---|---|---|
emailVerified |
boolean |
Whether the email has been verified with {@link sendEmailVerification} and {@link applyActionCode}. |
isAnonymous |
boolean |
Whether the user is authenticated using the {@link ProviderId}.ANONYMOUS provider. |
metadata |
UserMetadata |
Additional metadata around user creation and sign-in times. |
providerData |
UserInfo[] |
Additional per provider such as displayName and profile information. |
refreshToken |
string |
Refresh token used to reauthenticate the user. Avoid using this directly and prefer {@link User.getIdToken} to refresh the ID token instead. |
tenantId |
string | null |
The user's tenant ID. |
Method | Signature | Description |
---|---|---|
delete | () => Promise<void> | Deletes and signs out the user. |
getIdToken | (forceRefresh?: boolean | undefined) => Promise<string> | Returns a JSON Web Token (JWT) used to identify the user to a Firebase service. |
getIdTokenResult | (forceRefresh?: boolean | undefined) => Promise<IdTokenResult> | Returns a deserialized JSON Web Token (JWT) used to identify the user to a Firebase service. |
reload | () => Promise<void> | Refreshes the user, if signed in. |
toJSON | () => object | Returns a JSON-serializable representation of this object. |
Interface representing ID token result obtained from {@link User.getIdTokenResult}.
Prop | Type | Description |
---|---|---|
authTime |
string |
The authentication time formatted as a UTC string. |
expirationTime |
string |
The ID token expiration time formatted as a UTC string. |
issuedAtTime |
string |
The ID token issuance time formatted as a UTC string. |
signInProvider |
string | null |
The sign-in provider through which the ID token was obtained (anonymous, custom, phone, password, etc). |
signInSecondFactor |
string | null |
The type of second factor associated with this session, provided the user was multi-factor authenticated (eg. phone, etc). |
token |
string |
The Firebase Auth ID token JWT string. |
claims |
ParsedToken |
The entire payload claims of the ID token including the standard reserved claims as well as the custom claims. |
Interface representing a parsed ID token.
Prop | Type | Description |
---|---|---|
'exp' |
string |
Expiration time of the token. |
'sub' |
string |
UID of the user. |
'auth_time' |
string |
Time at which authentication was performed. |
'iat' |
string |
Issuance time of the token. |
'firebase' |
{ sign_in_provider?: string; sign_in_second_factor?: string; identities?: Record<string, string>; } |
Firebase specific claims, containing the provider(s) used to authenticate the user. |
Interface representing a user's metadata.
Prop | Type | Description |
---|---|---|
creationTime |
string |
Time the user was created. |
lastSignInTime |
string |
Time the user last signed in. |
User profile information, visible only to the Firebase project's apps.
Prop | Type | Description |
---|---|---|
displayName |
string | null |
The display name of the user. |
email |
string | null |
The email of the user. |
phoneNumber |
string | null |
The phone number normalized based on the E.164 standard (e.g. +16505550101) for the user. |
photoURL |
string | null |
The profile photo URL of the user. |
providerId |
string |
The provider used to authenticate the user. |
uid |
string |
The user's unique ID, scoped to the project. |
Prop | Type |
---|---|
remove |
() => Promise<void> |
Construct a type with a set of properties K of type T
{
[P in K]: T;
}