nuxt-users
Version:
A comprehensive user management module for Nuxt 3 and Nuxt 4 applications with authentication, authorization, database support, and CLI tools
41 lines (40 loc) • 1.59 kB
JavaScript
import { useDb } from "./db.js";
export const createPasswordResetTokensTable = async (options) => {
const connectorName = options.connector.name;
const db = await useDb(options);
const tableName = options.tables.passwordResetTokens;
console.log(`[Nuxt Users] DB:Create Password Reset Tokens ${connectorName} Table Creating ${tableName} table with ${connectorName} connector...`);
if (connectorName === "sqlite") {
await db.sql`
CREATE TABLE IF NOT EXISTS {${tableName}} (
id INTEGER PRIMARY KEY AUTOINCREMENT,
email TEXT NOT NULL,
token TEXT NOT NULL UNIQUE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
`;
}
if (connectorName === "mysql") {
await db.sql`
CREATE TABLE IF NOT EXISTS {${tableName}} (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) NOT NULL,
token VARCHAR(255) NOT NULL UNIQUE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
`;
}
if (connectorName === "postgresql") {
await db.sql`
CREATE TABLE IF NOT EXISTS {${tableName}} (
id SERIAL PRIMARY KEY,
email VARCHAR(255) NOT NULL,
token VARCHAR(255) NOT NULL UNIQUE,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
)
`;
}
await db.sql`CREATE INDEX IF NOT EXISTS idx_password_reset_tokens_email ON {${tableName}} (email)`;
await db.sql`CREATE INDEX IF NOT EXISTS idx_password_reset_tokens_token ON {${tableName}} (token)`;
console.log(`[Nuxt Users] DB:Create Password Reset Tokens ${connectorName} Table Fields: id, email, token, created_at \u2705`);
};