feat: bootstrap commercial AI drama platform
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import { createHash, randomBytes } from "node:crypto";
|
||||
|
||||
const KEY_PREFIX = "local-";
|
||||
|
||||
export function hashApiClientKey(value) {
|
||||
return createHash("sha256").update(String(value || "")).digest("hex");
|
||||
}
|
||||
|
||||
export function issueApiClientKey() {
|
||||
const secret = `${KEY_PREFIX}${randomBytes(24).toString("base64url")}`;
|
||||
return {
|
||||
secret,
|
||||
hash: hashApiClientKey(secret),
|
||||
prefix: secret.slice(0, 12)
|
||||
};
|
||||
}
|
||||
|
||||
export function apiClientStorageMarker(hash) {
|
||||
return `hash:${String(hash || "")}`;
|
||||
}
|
||||
|
||||
export function apiClientPreview(prefix) {
|
||||
const value = String(prefix || "");
|
||||
return value ? `${value}****` : "仅创建或轮换时显示一次";
|
||||
}
|
||||
Reference in New Issue
Block a user