next-auth
Version:
Authentication for Next.js
56 lines (55 loc) • 2.02 kB
TypeScript
/// <reference types="node" />
import type { IncomingMessage } from "http";
import type { LoggerInstance, Session } from "..";
export interface NextAuthClientConfig {
baseUrl: string;
basePath: string;
baseUrlServer: string;
basePathServer: string;
/** Stores last session response */
_session?: Session | null | undefined;
/** Used for timestamp since last sycned (in seconds) */
_lastSync: number;
/**
* Stores the `SessionProvider`'s session update method to be able to
* trigger session updates from places like `signIn` or `signOut`
*/
_getSession: (...args: any[]) => any;
}
export interface CtxOrReq {
req?: IncomingMessage;
ctx?: {
req: IncomingMessage;
};
}
/**
* If passed 'appContext' via getInitialProps() in _app.js
* then get the req object from ctx and use that for the
* req value to allow `fetchData` to
* work seemlessly in getInitialProps() on server side
* pages *and* in _app.js.
*/
export declare function fetchData<T = any>(path: string, __NEXTAUTH: NextAuthClientConfig, logger: LoggerInstance, { ctx, req }?: CtxOrReq): Promise<T | null>;
export declare function apiBaseUrl(__NEXTAUTH: NextAuthClientConfig): string;
/** Returns the number of seconds elapsed since January 1, 1970 00:00:00 UTC. */
export declare function now(): number;
export interface BroadcastMessage {
event?: "session";
data?: {
trigger?: "signout" | "getSession";
};
clientId: string;
timestamp: number;
}
/**
* Inspired by [Broadcast Channel API](https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API)
* Only not using it directly, because Safari does not support it.
*
* https://caniuse.com/?search=broadcastchannel
*/
export declare function BroadcastChannel(name?: string): {
/** Get notified by other tabs/windows. */
receive(onReceive: (message: BroadcastMessage) => void): () => void;
/** Notify other tabs/windows. */
post(message: Record<string, unknown>): void;
};