2026-05-09 18:25:04 +08:00
|
|
|
|
import { registerAs } from '@nestjs/config';
|
|
|
|
|
|
|
2026-05-09 18:57:33 +08:00
|
|
|
|
export default registerAs('jwt', () => {
|
2026-05-13 17:31:50 +08:00
|
|
|
|
const accessSecret = process.env.JWT_ACCESS_SECRET || process.env.JWT_SECRET;
|
|
|
|
|
|
const refreshSecret = process.env.JWT_REFRESH_SECRET || process.env.JWT_SECRET;
|
|
|
|
|
|
|
|
|
|
|
|
if (
|
|
|
|
|
|
!accessSecret ||
|
|
|
|
|
|
accessSecret === 'change_me_in_production'
|
|
|
|
|
|
) {
|
2026-05-09 18:57:33 +08:00
|
|
|
|
if (process.env.NODE_ENV === 'production') {
|
|
|
|
|
|
throw new Error(
|
2026-05-13 17:31:50 +08:00
|
|
|
|
'生产环境必须设置环境变量 JWT_ACCESS_SECRET 或 JWT_SECRET,不能使用默认值',
|
2026-05-09 18:57:33 +08:00
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
console.warn(
|
|
|
|
|
|
'\n⚠️ 警告: JWT_SECRET 使用的是默认值 "change_me_in_production"\n' +
|
2026-05-13 17:31:50 +08:00
|
|
|
|
' 部署到生产环境前请务必设置环境变量 JWT_ACCESS_SECRET\n',
|
2026-05-09 18:57:33 +08:00
|
|
|
|
);
|
|
|
|
|
|
}
|
2026-05-13 17:31:50 +08:00
|
|
|
|
|
2026-05-09 18:57:33 +08:00
|
|
|
|
return {
|
2026-05-13 17:31:50 +08:00
|
|
|
|
secret: accessSecret || 'change_me_in_production',
|
|
|
|
|
|
accessSecret: accessSecret || 'change_me_in_production',
|
|
|
|
|
|
refreshSecret: refreshSecret || 'change_me_in_production',
|
2026-05-09 18:57:33 +08:00
|
|
|
|
expiresIn: process.env.JWT_EXPIRES_IN || '1h',
|
|
|
|
|
|
refreshExpiresIn: process.env.JWT_REFRESH_EXPIRES_IN || '7d',
|
|
|
|
|
|
};
|
|
|
|
|
|
});
|