36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import type { InternalOptions } from "../types";
|
|
import type { AdapterSession, AdapterUser } from "../../adapters";
|
|
import type { JWT } from "../../jwt";
|
|
import type { Account, User } from "../..";
|
|
import type { SessionToken } from "./cookie";
|
|
/**
|
|
* This function handles the complex flow of signing users in, and either creating,
|
|
* linking (or not linking) accounts depending on if the user is currently logged
|
|
* in, if they have account already and the authentication mechanism they are using.
|
|
*
|
|
* It prevents insecure behaviour, such as linking OAuth accounts unless a user is
|
|
* signed in and authenticated with an existing valid account.
|
|
*
|
|
* All verification (e.g. OAuth flows or email address verificaiton flows) are
|
|
* done prior to this handler being called to avoid additonal complexity in this
|
|
* handler.
|
|
*/
|
|
export default function callbackHandler(params: {
|
|
sessionToken?: SessionToken;
|
|
profile: User | AdapterUser | {
|
|
email: string;
|
|
};
|
|
account: Account | null;
|
|
options: InternalOptions;
|
|
}): Promise<{
|
|
user: User;
|
|
account: Account;
|
|
session?: undefined;
|
|
isNewUser?: undefined;
|
|
} | {
|
|
session: JWT | AdapterSession | null;
|
|
user: AdapterUser;
|
|
isNewUser: boolean;
|
|
account?: undefined;
|
|
}>;
|
|
//# sourceMappingURL=callback-handler.d.ts.map
|