Something went wrong. Try again.
Monorepo for wisp.place. A static site hosting service built on top of the AT Protocol. forked from nekomimi.pet/wisp.place-monorepo
Something went wrong. Try again.
1.3 kB · 46 lines
TypeScript
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647// Change admin passwordimport { adminAuth } from './src/lib/admin-auth'import { db } from './src/lib/db'import { randomBytes, createHash } from 'crypto'
// Get username and new password from command lineconst username = process.argv[2]const newPassword = process.argv[3]
if (!username || !newPassword) { console.error('Usage: bun run change-admin-password.ts <username> <new-password>') process.exit(1)}
if (newPassword.length < 8) { console.error('Password must be at least 8 characters') process.exit(1)}
// Hash passwordfunction hashPassword(password: string, salt: string): string { return createHash('sha256').update(password + salt).digest('hex')}
function generateSalt(): string { return randomBytes(32).toString('hex')}
// Initializeawait adminAuth.init()
// Check if user existsconst result = await db`SELECT username FROM admin_users WHERE username = ${username}`if (result.length === 0) { console.error(`Admin user '${username}' not found`) process.exit(1)}
// Update passwordconst salt = generateSalt()const passwordHash = hashPassword(newPassword, salt)
await db`UPDATE admin_users SET password_hash = ${passwordHash}, salt = ${salt} WHERE username = ${username}`
console.log(`✓ Password updated for admin user '${username}'`)process.exit(0)