更新完善页面
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
const crypto = require('crypto')
|
||||
const readline = require('readline')
|
||||
const { query } = require('../config/database')
|
||||
require('dotenv').config()
|
||||
|
||||
const DEFAULT_PASSWORD = process.env.DEFAULT_PASSWORD || '123456'
|
||||
const DEFAULT_PHONE = process.env.ADMIN_PHONE || '13800000000'
|
||||
const DEFAULT_NAME = process.env.ADMIN_NAME || '系统管理员'
|
||||
|
||||
function md5(str) {
|
||||
return crypto.createHash('md5').update(str).digest('hex')
|
||||
}
|
||||
|
||||
function ask(question) {
|
||||
const rl = readline.createInterface({ input: process.stdin, output: process.stdout })
|
||||
return new Promise(resolve => rl.question(question, ans => { rl.close(); resolve(ans) }))
|
||||
}
|
||||
|
||||
async function run() {
|
||||
try {
|
||||
const phoneArg = process.argv[2]
|
||||
const passwordArg = process.argv[3]
|
||||
|
||||
let phone = phoneArg
|
||||
let password = passwordArg
|
||||
|
||||
if (!phone) {
|
||||
phone = (await ask(`管理员手机号 [${DEFAULT_PHONE}]: `)) || DEFAULT_PHONE
|
||||
}
|
||||
if (!password) {
|
||||
password = (await ask(`管理员密码 [${DEFAULT_PASSWORD}]: `)) || DEFAULT_PASSWORD
|
||||
}
|
||||
|
||||
if (!/^1\d{10}$/.test(phone)) {
|
||||
console.error('手机号格式错误')
|
||||
process.exit(1)
|
||||
}
|
||||
if (password.length < 8) {
|
||||
console.error('密码至少 8 位')
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const existing = await query('SELECT id, role FROM users WHERE phone = ?', [phone])
|
||||
if (existing.length > 0) {
|
||||
if (existing[0].role === 2) {
|
||||
console.log(`该手机号已是管理员 (id=${existing[0].id})`)
|
||||
process.exit(0)
|
||||
}
|
||||
await query('UPDATE users SET role = 2, password = ? WHERE id = ?', [md5(password), existing[0].id])
|
||||
console.log(`已将用户 ${phone} 提升为管理员,密码已重置`)
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
const result = await query(
|
||||
'INSERT INTO users (phone, password, name, avatar, points, role, status) VALUES (?, ?, ?, ?, ?, ?, ?)',
|
||||
[phone, md5(password), DEFAULT_NAME, '', 0, 2, 1]
|
||||
)
|
||||
console.log(`\n✅ 管理员创建成功`)
|
||||
console.log(` id : ${result.insertId}`)
|
||||
console.log(` phone : ${phone}`)
|
||||
console.log(` name : ${DEFAULT_NAME}`)
|
||||
console.log(` role : 2 (管理员)`)
|
||||
console.log(` password: ${password} (首次登录后请尽快修改)\n`)
|
||||
process.exit(0)
|
||||
} catch (error) {
|
||||
console.error('创建管理员失败:', error)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
run()
|
||||
Reference in New Issue
Block a user