用途:在 Nuxt 项目中集成 nuxt-users 模块,实现认证、用户管理、角色权限、密码重置和数据库初始化。
安装与初始化:npm install nuxt-users;并安装依赖 db0 better-sqlite3 bcrypt nodemailer。使用 MySQL 或 PostgreSQL 时需安装对应驱动 mysql2 或 pg。在 nuxt.config.ts 的 modules 中注册 'nuxt-users',然后在项目根目录运行 npx nuxt-users migrate。创建用户:npx nuxt-users create-user -e admin@example.com -n "Admin User" -p password123 -r admin。
主要能力:通过 nuxtUsers.auth.permissions 按角色配置可访问路径(如 admin: ['*']、user: ['/profile']);使用 NUsersLoginForm 组件并以 @success 调用 useAuthentication() 的 login(user) 完成登录;提供 useAuthentication、useUsers、usePublicPaths、usePasswordValidation、useNuxtUsersLocale 等自动导入组合式函数,以及登录、登出、资料、重置密码、用户列表与用户表单等组件。
配置:所有选项位于 nuxt.config.ts 的 nuxtUsers 下,涵盖数据库连接、apiBasePath、自定义表名、邮件配置、密码重置与邮箱确认 URL、白名单、令牌过期、记住我、权限、Google OAuth、密码校验规则、硬删除与本地化,也支持 runtimeConfig.nuxtUsers。
限制:CLI 需在含 nuxt.config 的项目根目录运行;生产环境需在 Node 运行处安装 nuxt-users 及依赖,纯构建或 --omit=dev 部署会回退到 DB_* 环境变量。权限需与角色和路由保持同步。更多细节见 https://nuxt-users.webmania.cc/。