51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
/**
|
|
* @flow
|
|
* EmailAuthProvider representation wrapper
|
|
*/
|
|
import type { AuthCredential } from '../types';
|
|
|
|
const linkProviderId = 'emailLink';
|
|
const passwordProviderId = 'password';
|
|
|
|
export default class EmailAuthProvider {
|
|
constructor() {
|
|
throw new Error(
|
|
'`new EmailAuthProvider()` is not supported on the native Firebase SDKs.'
|
|
);
|
|
}
|
|
|
|
static get EMAIL_LINK_SIGN_IN_METHOD(): string {
|
|
return linkProviderId;
|
|
}
|
|
|
|
static get EMAIL_PASSWORD_SIGN_IN_METHOD(): string {
|
|
return passwordProviderId;
|
|
}
|
|
|
|
static get PROVIDER_ID(): string {
|
|
return passwordProviderId;
|
|
}
|
|
|
|
static credential(email: string, password: string): AuthCredential {
|
|
return {
|
|
token: email,
|
|
secret: password,
|
|
providerId: passwordProviderId,
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Initialize an EmailAuthProvider credential using an email and an email link after a sign in with email link operation.
|
|
* @param email Email address.
|
|
* @param emailLink Sign-in email link.
|
|
* @returns {{token: string, secret: string, providerId: string}}
|
|
*/
|
|
static credentialWithLink(email: string, emailLink: string): AuthCredential {
|
|
return {
|
|
token: email,
|
|
secret: emailLink,
|
|
providerId: linkProviderId,
|
|
};
|
|
}
|
|
}
|