Skip to content
Migrating from NextAuth.js v4? Read our migration guide.

lib/mysql

DefaultMySqlAccountsTable

type DefaultMySqlAccountsTable = MySqlTableWithColumns<{
  columns: {
     access_token: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        driverParam: string | number;
        notNull: boolean;
       }>;
     expires_at: DefaultMyqlColumn<{
        columnType: "MySqlInt";
        data: number;
        dataType: "number";
        notNull: boolean;
       }>;
     id_token: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: boolean;
       }>;
     provider: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
     providerAccountId: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
     refresh_token: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: boolean;
       }>;
     scope: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: boolean;
       }>;
     session_state: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: boolean;
       }>;
     token_type: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: boolean;
       }>;
     type: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
     userId: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
    };
  dialect: "mysql";
  name: string;
  schema: string | undefined;
}>;

DefaultMySqlAuthenticatorTable

type DefaultMySqlAuthenticatorTable = MySqlTableWithColumns<{
  columns: {
     counter: DefaultMyqlColumn<{
        columnType: "MySqlInt";
        data: number;
        dataType: "number";
        notNull: true;
       }>;
     credentialBackedUp: DefaultMyqlColumn<{
        columnType: "MySqlBoolean";
        data: boolean;
        dataType: "boolean";
        notNull: true;
       }>;
     credentialDeviceType: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
     credentialID: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
     credentialPublicKey: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
     providerAccountId: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
     transports: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: false;
       }>;
     userId: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
    };
  dialect: "mysql";
  name: string;
  schema: string | undefined;
}>;

DefaultMySqlSchema

type DefaultMySqlSchema = {
  accountsTable: DefaultMySqlAccountsTable;
  authenticatorsTable: DefaultMySqlAuthenticatorTable;
  sessionsTable: DefaultMySqlSessionsTable;
  usersTable: DefaultMySqlUsersTable;
  verificationTokensTable: DefaultMySqlVerificationTokenTable;
};

Type declaration

accountsTable

accountsTable: DefaultMySqlAccountsTable;

authenticatorsTable?

optional authenticatorsTable: DefaultMySqlAuthenticatorTable;

sessionsTable?

optional sessionsTable: DefaultMySqlSessionsTable;

usersTable

usersTable: DefaultMySqlUsersTable;

verificationTokensTable?

optional verificationTokensTable: DefaultMySqlVerificationTokenTable;

DefaultMySqlSessionsTable

type DefaultMySqlSessionsTable = MySqlTableWithColumns<{
  columns: {
     expires: DefaultMyqlColumn<{
        columnType: "MySqlTimestamp";
        data: Date;
        dataType: "date";
        notNull: true;
       }>;
     sessionToken: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        isPrimaryKey: true;
        notNull: true;
       }>;
     userId: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
    };
  dialect: "mysql";
  name: string;
  schema: string | undefined;
}>;

DefaultMySqlUsersTable

type DefaultMySqlUsersTable = MySqlTableWithColumns<{
  columns: {
     email: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: boolean;
       }>;
     emailVerified: DefaultMyqlColumn<{
        columnType: "MySqlTimestamp";
        data: Date;
        dataType: "date";
        notNull: boolean;
       }>;
     id: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        isPrimaryKey: true;
        notNull: true;
       }>;
     image: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: boolean;
       }>;
     name: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: boolean;
       }>;
    };
  dialect: "mysql";
  name: string;
  schema: string | undefined;
}>;

DefaultMySqlVerificationTokenTable

type DefaultMySqlVerificationTokenTable = MySqlTableWithColumns<{
  columns: {
     expires: DefaultMyqlColumn<{
        columnType: "MySqlTimestamp";
        data: Date;
        dataType: "date";
        notNull: true;
       }>;
     identifier: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
     token: DefaultMyqlColumn<{
        columnType: "MySqlVarChar" | "MySqlText";
        data: string;
        dataType: "string";
        notNull: true;
       }>;
    };
  dialect: "mysql";
  name: string;
  schema: string | undefined;
}>;

defineTables()

function defineTables(schema): Required<DefaultMySqlSchema>

Parameters

ParameterType
schemaPartial<DefaultMySqlSchema>

Returns

Required<DefaultMySqlSchema>


MySqlDrizzleAdapter()

function MySqlDrizzleAdapter(client, schema?): Adapter

Parameters

ParameterType
clientMySqlDatabase<MySqlQueryResultHKT, PreparedQueryHKTBase, any>
schema?DefaultMySqlSchema

Returns

Adapter

Auth.js © Balázs Orbán and Team - 2025