@pedwise/next-firebase-auth-edge
Version:
Next.js 13 Firebase Authentication for Edge and server runtimes. Dedicated for Next 13 server components. Compatible with Next.js middleware.
97 lines (96 loc) • 3.01 kB
TypeScript
export interface MultiFactorInfoResponse {
mfaEnrollmentId: string;
displayName?: string;
phoneInfo?: string;
enrolledAt?: string;
[key: string]: any;
}
export interface ProviderUserInfoResponse {
rawId: string;
displayName?: string;
email?: string;
photoUrl?: string;
phoneNumber?: string;
providerId: string;
federatedId?: string;
}
export interface GetAccountInfoUserResponse {
localId: string;
email?: string;
emailVerified?: boolean;
phoneNumber?: string;
displayName?: string;
photoUrl?: string;
disabled?: boolean;
passwordHash?: string;
salt?: string;
customAttributes?: string;
validSince?: string;
tenantId?: string;
providerUserInfo?: ProviderUserInfoResponse[];
mfaInfo?: MultiFactorInfoResponse[];
createdAt?: string;
lastLoginAt?: string;
lastRefreshAt?: string;
[key: string]: any;
}
export declare abstract class MultiFactorInfo {
readonly uid: string;
readonly displayName?: string;
readonly factorId: string;
readonly enrollmentTime?: string;
static initMultiFactorInfo(response: MultiFactorInfoResponse): MultiFactorInfo | null;
constructor(response: MultiFactorInfoResponse);
toJSON(): object;
protected abstract getFactorId(response: MultiFactorInfoResponse): string | null;
private initFromServerResponse;
}
export declare class PhoneMultiFactorInfo extends MultiFactorInfo {
readonly phoneNumber: string;
constructor(response: MultiFactorInfoResponse);
toJSON(): object;
protected getFactorId(response: MultiFactorInfoResponse): string | null;
}
export declare class MultiFactorSettings {
enrolledFactors: MultiFactorInfo[];
constructor(response: GetAccountInfoUserResponse);
toJSON(): object;
}
export declare class UserMetadata {
readonly creationTime: string;
readonly lastSignInTime: string;
readonly lastRefreshTime?: string | null;
constructor(response: GetAccountInfoUserResponse);
toJSON(): object;
}
export declare class UserInfo {
readonly uid: string;
readonly displayName: string;
readonly email: string;
readonly photoURL: string;
readonly providerId: string;
readonly phoneNumber: string;
constructor(response: ProviderUserInfoResponse);
toJSON(): object;
}
export declare class UserRecord {
readonly uid: string;
readonly email?: string;
readonly emailVerified: boolean;
readonly displayName?: string;
readonly photoURL?: string;
readonly phoneNumber?: string;
readonly disabled: boolean;
readonly metadata: UserMetadata;
readonly providerData: UserInfo[];
readonly passwordHash?: string;
readonly passwordSalt?: string;
readonly customClaims?: {
[key: string]: any;
};
readonly tenantId?: string | null;
readonly tokensValidAfterTime?: string;
readonly multiFactor?: MultiFactorSettings;
constructor(response: GetAccountInfoUserResponse);
toJSON(): object;
}