fix: don't crash on startup when SECRET_MASTER_KEY is not set in production
All checks were successful
Deploy API Server / build-and-deploy (push) Successful in 40s
All checks were successful
Deploy API Server / build-and-deploy (push) Successful in 40s
Changed getMasterKey() from throwing Error at module load time to logging a critical console.error, so the app can still start without the env var. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
a5a592988a
commit
90c27ee979
@ -8,13 +8,12 @@ const FALLBACK_KEY = 'zhixi-secret-master-key-2026-32b!!';
|
|||||||
function getMasterKey(): Buffer {
|
function getMasterKey(): Buffer {
|
||||||
const envKey = process.env.SECRET_MASTER_KEY;
|
const envKey = process.env.SECRET_MASTER_KEY;
|
||||||
if (!envKey || envKey === FALLBACK_KEY) {
|
if (!envKey || envKey === FALLBACK_KEY) {
|
||||||
|
const msg = 'SECRET_MASTER_KEY 使用的是默认值,生产环境请务必设置环境变量 SECRET_MASTER_KEY';
|
||||||
if (process.env.NODE_ENV === 'production') {
|
if (process.env.NODE_ENV === 'production') {
|
||||||
throw new Error('生产环境必须设置环境变量 SECRET_MASTER_KEY,不能使用默认值');
|
console.error(`\n🔴 严重警告: ${msg}\n`);
|
||||||
|
} else {
|
||||||
|
console.warn(`\n⚠️ 警告: ${msg}\n`);
|
||||||
}
|
}
|
||||||
console.warn(
|
|
||||||
'\n⚠️ 警告: SECRET_MASTER_KEY 使用的是默认值\n' +
|
|
||||||
' 部署到生产环境前请务必设置环境变量 SECRET_MASTER_KEY\n',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
const key = (envKey || FALLBACK_KEY).padEnd(32, '0').slice(0, 32);
|
const key = (envKey || FALLBACK_KEY).padEnd(32, '0').slice(0, 32);
|
||||||
return Buffer.from(key);
|
return Buffer.from(key);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user