better-auth
Version:
The most comprehensive authentication framework for TypeScript.
126 lines (125 loc) • 3.67 kB
text/typescript
import { Session, User } from "../../types/models.mjs";
import "../../types/index.mjs";
import { GenericEndpointContext } from "@better-auth/core";
import * as z from "zod";
import * as better_call223 from "better-call";
//#region src/plugins/one-time-token/index.d.ts
interface OneTimeTokenOptions {
/**
* Expires in minutes
*
* @default 3
*/
expiresIn?: number | undefined;
/**
* Only allow server initiated requests
*/
disableClientRequest?: boolean | undefined;
/**
* Generate a custom token
*/
generateToken?: ((session: {
user: User & Record<string, any>;
session: Session & Record<string, any>;
}, ctx: GenericEndpointContext) => Promise<string>) | undefined;
/**
* Disable setting the session cookie when the token is verified
*/
disableSetSessionCookie?: boolean;
/**
* This option allows you to configure how the token is stored in your database.
* Note: This will not affect the token that's sent, it will only affect the token stored in your database.
*
* @default "plain"
*/
storeToken?: ("plain" | "hashed" | {
type: "custom-hasher";
hash: (token: string) => Promise<string>;
}) | undefined;
/**
* Set the OTT header on new sessions
*/
setOttHeaderOnNewSession?: boolean;
}
declare const oneTimeToken: (options?: OneTimeTokenOptions | undefined) => {
id: "one-time-token";
endpoints: {
/**
* ### Endpoint
*
* GET `/one-time-token/generate`
*
* ### API Methods
*
* **server:**
* `auth.api.generateOneTimeToken`
*
* **client:**
* `authClient.oneTimeToken.generate`
*
* @see [Read our docs to learn more.](https://better-auth.com/docs/plugins/one-time-token#api-method-one-time-token-generate)
*/
generateOneTimeToken: better_call223.StrictEndpoint<"/one-time-token/generate", {
method: "GET";
use: ((inputContext: better_call223.MiddlewareInputContext<better_call223.MiddlewareOptions>) => Promise<{
session: {
session: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
userId: string;
expiresAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
};
user: Record<string, any> & {
id: string;
createdAt: Date;
updatedAt: Date;
email: string;
emailVerified: boolean;
name: string;
image?: string | null | undefined;
};
};
}>)[];
}, {
token: string;
}>;
/**
* ### Endpoint
*
* POST `/one-time-token/verify`
*
* ### API Methods
*
* **server:**
* `auth.api.verifyOneTimeToken`
*
* **client:**
* `authClient.oneTimeToken.verify`
*
* @see [Read our docs to learn more.](https://better-auth.com/docs/plugins/one-time-token#api-method-one-time-token-verify)
*/
verifyOneTimeToken: better_call223.StrictEndpoint<"/one-time-token/verify", {
method: "POST";
body: z.ZodObject<{
token: z.ZodString;
}, z.core.$strip>;
}, {
session: Session & Record<string, any>;
user: User & Record<string, any>;
}>;
};
hooks: {
after: {
matcher: () => true;
handler: (inputContext: better_call223.MiddlewareInputContext<better_call223.MiddlewareOptions>) => Promise<void>;
}[];
};
options: OneTimeTokenOptions | undefined;
};
//#endregion
export { OneTimeTokenOptions, oneTimeToken };
//# sourceMappingURL=index.d.mts.map