strapi-plugin-firebase-authentication
Version:
Allows easy integration between clients utilizing Firebase for authentication and Strapi
187 lines (186 loc) • 7.71 kB
TypeScript
/// <reference types="lodash" />
declare const _default: {
settingsService: ({ strapi }: {
strapi: any;
}) => {
init(): Promise<void>;
getFirebaseConfigJson(): Promise<{
firebaseConfigJson: any;
firebaseWebApiKey: any;
passwordRequirementsRegex: any;
passwordRequirementsMessage: any;
passwordResetUrl: any;
passwordResetEmailSubject: any;
enableMagicLink: any;
magicLinkUrl: any;
magicLinkEmailSubject: any;
magicLinkExpiryHours: any;
emailVerificationUrl: any;
emailVerificationEmailSubject: any;
includeCredentialsInPasswordResetLink: any;
includeCredentialsInVerificationLink: any;
}>;
setFirebaseConfigJson(requestBody: any): Promise<any>;
delFirebaseConfigJson: () => Promise<any>;
updateMagicLinkSettings(settings: any): Promise<{
enableMagicLink: any;
magicLinkUrl: any;
magicLinkEmailSubject: any;
magicLinkExpiryHours: any;
}>;
encryptJson(key: string, json: string): Promise<any>;
decryptJson(key: string, hash: string): Promise<any>;
restart(): Promise<void>;
};
userService: ({ strapi }: {
strapi: any;
}) => {
get: (entityId: string) => Promise<any>;
create: (payload: any) => Promise<any>;
register: (userID: any, payload: any) => Promise<void>;
list: (pagination: any, nextPageToken: any, sort: any, searchQuery: any) => Promise<{
data: any;
pageToken: any;
meta: {
pagination: any;
};
}>;
updateFirebaseUser: (entityId: any, payload: any) => Promise<any>;
update: (entityId: any, payload: any) => Promise<[PromiseSettledResult<any>, PromiseSettledResult<any>]>;
resetPasswordFirebaseUser: (entityId: any, payload: any) => Promise<any>;
resetPasswordStrapiUser: (entityId: any, payload: any) => Promise<any>;
resetPassword: (entityId: any, payload: any) => Promise<[PromiseSettledResult<any>, PromiseSettledResult<any>]>;
delete: (entityId: any) => Promise<[PromiseSettledResult<any>, PromiseSettledResult<any>]>;
deleteFirebaseUser: (entityId: any) => Promise<any>;
deleteStrapiUser: (entityId: any) => Promise<any>;
deleteMany: (entityIDs: any) => Promise<any>;
setSocialMetaData(): Promise<void>;
sendPasswordResetEmail: (entityId: string) => Promise<any>;
sendPasswordResetEmailByEmail: (email: string) => Promise<{
success: boolean;
message: string;
}>;
resetPasswordWithToken: (token: string, newPassword: string) => Promise<{
success: boolean;
message: string;
}>;
sendVerificationEmail: (entityId: string) => Promise<any>;
};
firebaseService: ({ strapi }: {
strapi: any;
}) => {
getUserAttributes(): Promise<any>;
delete: (entityId: any) => Promise<{
success: boolean;
}>;
validateExchangeTokenPayload: (requestPayload: any) => Promise<any>;
decodeIDToken: (idToken: any) => Promise<any>;
overrideFirebaseAccess: (overrideUserId: string, populate?: string[]) => Promise<{
user: any;
jwt: any;
}>;
checkIfUserExists(decodedToken: any): Promise<any>;
fetchUser: (decodedToken: any) => Promise<any>;
generateJWTForCurrentUser: (user: any) => Promise<any>;
createStrapiUser(decodedToken: any, idToken: any, profileMetaData: any): Promise<any>;
validateFirebaseToken: (idToken: string, profileMetaData?: any, populate?: string[]) => Promise<{
user: any;
jwt: any;
}>;
emailLogin: (email: string, password: string, populate?: string[]) => Promise<{
user: any;
jwt: any;
}>;
forgotPassword: (email: string) => Promise<{
message: string;
}>;
resetPassword: (password: string, user: any, populate: any[]) => Promise<{
user: any;
jwt: any;
}>;
requestMagicLink(email: string): Promise<{
debug: {
linkSent: any;
email: string;
message: any;
};
success: boolean;
message: string;
requiresFrontend: boolean;
verificationUrl: any;
} | {
success: boolean;
message: string;
requiresFrontend: boolean;
verificationUrl: any;
}>;
sendVerificationEmail(email: string): Promise<{
message: string;
}>;
verifyEmail(token: string): Promise<{
success: boolean;
message: string;
}>;
checkPassword(user: any, password: string): Promise<{
valid: boolean;
}>;
};
templateService: ({ strapi }: {
strapi: any;
}) => {
getTemplate(templateType: import("../templates/types").TemplateType): Promise<import("../templates/types").EmailTemplate>;
compileTemplate(templateString: string): import("lodash").TemplateExecutor;
validateVariables(variables: Partial<import("../templates/types").TemplateVariables>, required: string[]): void;
};
emailService: ({ strapi }: {
strapi: any;
}) => {
sendTemplatedEmail(to: string, templateType: import("../templates/types").TemplateType, variables: Partial<import("../templates/types").TemplateVariables>): Promise<void>;
sendPasswordResetEmail(user: any, resetLink: string): Promise<{
success: boolean;
message: string;
}>;
sendMagicLinkEmail(email: string, magicLink: string, config: any): Promise<{
success: boolean;
message: string;
}>;
sendPasswordChangedEmail(user: any): Promise<{
success: boolean;
message: string;
}>;
sendVerificationEmail(user: any, verificationLink: string): Promise<{
success: boolean;
message: string;
}>;
};
firebaseUserDataService: ({ strapi }: {
strapi: any;
}) => {
findOrCreateForUser(userId: string): Promise<any>;
getByFirebaseUID(firebaseUID: string): Promise<any>;
updateForUser(userId: string, data: {
firebaseUserID?: string;
appleEmail?: string;
}): Promise<any>;
};
autoLinkService: {
linkAllUsers(strapi: import("@strapi/types/dist/core").Strapi): Promise<import("./autoLinkService").LinkResult>;
};
firebaseStrapiLinkService: ({ strapi }: {
strapi: any;
}) => {
buildUserMap(): Promise<Map<any, any>>;
linkFirebaseUsers(firebaseUsers: any[], uidToUserMap: Map<string, any>, allStrapiUsers: any[]): any[];
};
tokenService: ({ strapi }: {
strapi: any;
}) => {
generateResetToken(firebaseUserDataDocumentId: string): Promise<string>;
validateResetToken(token: string): Promise<import("./tokenService").TokenValidationResult>;
invalidateResetToken(firebaseUserDataDocumentId: string): Promise<void>;
generateVerificationToken(firebaseUserDataDocumentId: string, email: string): Promise<string>;
validateVerificationToken(token: string): Promise<import("./tokenService").VerificationTokenValidationResult>;
invalidateVerificationToken(firebaseUserDataDocumentId: string): Promise<void>;
};
};
export default _default;