避免部署账号异常

This commit is contained in:
浪子
2026-05-14 22:57:25 +08:00
parent e55a1a063d
commit 3fff8632fb
2 changed files with 6 additions and 1 deletions
+3 -1
View File
@@ -21,6 +21,8 @@ import { id } from "./util";
export async function ensureAdminUser(env: Env): Promise<void> {
const existing = await env.DB.prepare("SELECT id FROM users WHERE username = ?").bind(env.ADMIN_USERNAME).first<{ id: string }>();
if (existing) return;
const adminPassword = env.ADMIN_PASSWORD;
if (!adminPassword?.trim()) throw new Error("ADMIN_PASSWORD secret is required before creating the admin user");
const keyPair = await crypto.subtle.generateKey(
{ name: "RSASSA-PKCS1-v1_5", modulusLength: 2048, publicExponent: new Uint8Array([1, 0, 1]), hash: "SHA-256" },
@@ -34,7 +36,7 @@ export async function ensureAdminUser(env: Env): Promise<void> {
await env.DB.prepare(
"INSERT OR IGNORE INTO users (id, username, display_name, note, password_hash, private_key_jwk, public_key_jwk, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
)
.bind(id(), env.ADMIN_USERNAME, env.ADMIN_USERNAME, "", await hashPassword(env.ADMIN_PASSWORD), JSON.stringify(privateKey), JSON.stringify(publicKey), now)
.bind(id(), env.ADMIN_USERNAME, env.ADMIN_USERNAME, "", await hashPassword(adminPassword), JSON.stringify(privateKey), JSON.stringify(publicKey), now)
.run();
}
+3
View File
@@ -9,6 +9,9 @@
"ADMIN_USERNAME": "sun"
//"ADMIN_PASSWORD": "change-me-before-deploy"
},
"secrets": {
"required": ["ADMIN_PASSWORD"]
},
"d1_databases": [
{
"binding": "DB",