@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.
27 lines (26 loc) • 1.6 kB
TypeScript
import { DecodedIdToken } from "./token-verifier";
import { FirebaseAuthError } from "./error";
import { ServiceAccount } from "./credential";
import { UserRecord } from "./user-record";
export declare function customTokenToIdAndRefreshTokens(customToken: string, firebaseApiKey: string): Promise<IdAndRefreshTokens>;
export declare function isUserNotFoundError(error: unknown): error is FirebaseAuthError;
export declare function isInvalidCredentialError(error: unknown): error is FirebaseAuthError;
export declare function handleExpiredToken<T>(verifyIdToken: () => Promise<T>, onExpired: (e: FirebaseAuthError) => Promise<T>, onError: (e: unknown) => Promise<T>): Promise<T>;
export interface IdAndRefreshTokens {
idToken: string;
refreshToken: string;
}
export interface Tokens {
decodedToken: DecodedIdToken;
token: string;
}
export declare function getFirebaseAuth(serviceAccount: ServiceAccount, apiKey: string): {
verifyAndRefreshExpiredIdToken: (token: string, refreshToken: string) => Promise<Tokens | null>;
verifyIdToken: (idToken: string, checkRevoked?: boolean) => Promise<DecodedIdToken>;
createCustomToken: (uid: string, developerClaims?: object) => Promise<string>;
getCustomIdAndRefreshTokens: (idToken: string, firebaseApiKey: string) => Promise<IdAndRefreshTokens>;
handleTokenRefresh: (refreshToken: string, firebaseApiKey: string) => Promise<Tokens>;
deleteUser: (uid: string) => Promise<void>;
setCustomUserClaims: (uid: string, customUserClaims: object | null) => Promise<void>;
getUser: (uid: string) => Promise<UserRecord>;
};