固化默认登录凭据为 admin/666666(保留 env 覆盖)

This commit is contained in:
yinjun.chen1
2026-09-21 16:39:20 +08:00
parent 16ed61f36d
commit f4ee32b3b2
4 changed files with 8 additions and 8 deletions
+3 -3
View File
@@ -7,7 +7,7 @@
* PORT 监听端口(默认 3000)
* DATA_DIR SQLite 数据目录(默认 backend/data)
* VCM_USERNAME 面板登录账号(默认 admin)
* VCM_PASSWORD 面板登录密码(默认 admin123,Docker 部署务必通过 compose 覆盖)
* VCM_PASSWORD 面板登录密码(默认 666666,Docker 部署务必通过 compose 覆盖)
* UV_THREADPOOL_SIZE libuv IO 线程池大小(默认 4 → 8:扫描/stat/readFile 并发更高,NAS 四核安全)
*/
// 必须在 libuv 线程池首次使用前设置:扫描大量目录/文件时默认 4 线程是主要瓶颈
@@ -198,7 +198,7 @@ function buildPackages(keyword = '') {
// —— 登录鉴权:内置账号(Docker 部署通过 VCM_USERNAME/VCM_PASSWORD 环境变量覆盖) ——
const AUTH_USERNAME = process.env.VCM_USERNAME || 'admin'
const AUTH_PASSWORD = process.env.VCM_PASSWORD || 'admin123'
const AUTH_PASSWORD = process.env.VCM_PASSWORD || '666666'
const SESSION_TTL_MS = 12 * 3600_000 // 会话有效期 12 小时,防长期 token 泄漏
const LOGIN_LOCK = { failures: 3, windowMs: 5 * 60_000, lockMs: 15 * 60_000 } // 3 次失败锁 15 分钟
const sessions = new Map() // token -> { name, at, exp };内存态,进程重启后需重新登录
@@ -596,7 +596,7 @@ app.listen(PORT, () => {
const mode = isDemoMode() ? 'demo' : 'storage'
if (!process.env.VCM_PASSWORD) {
console.warn(
'[auth] ⚠ 未设置 VCM_PASSWORD 环境变量,正在使用默认口令 admin123。' +
'[auth] ⚠ 未设置 VCM_PASSWORD 环境变量,正在使用默认口令 666666。' +
'生产部署请务必通过 docker-compose 的环境变量覆盖,否则面板可被任意登录!',
)
}
+1 -1
View File
@@ -13,7 +13,7 @@ services:
- PORT=3000
- TZ=Asia/Shanghai # 每日 00:00 自动扫描按北京时间执行
- VCM_USERNAME=${VCM_USERNAME:-admin} # 面板登录账号(可在宿主机 .env 覆盖)
- VCM_PASSWORD=${VCM_PASSWORD:-admin123} # 面板登录密码(务必改为强密码)
- VCM_PASSWORD=${VCM_PASSWORD:-666666} # 面板登录密码(默认 666666,可在宿主机 .env 覆盖)
- UV_THREADPOOL_SIZE=8 # libuv IO 线程池(默认4→8):扫描/stat 并发更高,NAS 四核安全
volumes:
- "/volume2/docker/verdaccio_verdaccio-1/verdaccio_storage:/verdaccio/storage" # Verdaccio 缓存目录(读写,清理需要)
+1 -1
View File
@@ -87,7 +87,7 @@ const api = {
async login(username, password, remember = true) {
if (USE_MOCK) {
await delay(400)
if (username !== 'admin' || password !== 'admin123') return { ok: false, message: '用户名或密码错误' }
if (username !== 'admin' || password !== '666666') return { ok: false, message: '用户名或密码错误' }
const token = `mock-${Date.now()}`
if (remember) storage.set(TOKEN_KEY, token)
else storage.setSession(TOKEN_KEY, token)
+3 -3
View File
@@ -8,8 +8,8 @@ const router = useRouter()
const route = useRoute()
const { theme, toggle } = useTheme()
const username = ref('')
const password = ref('')
const username = ref('admin')
const password = ref('666666')
const remember = ref(true)
const loading = ref(false)
@@ -60,7 +60,7 @@ async function login() {
<button class="login-btn" :disabled="loading" @click="login">
{{ loading ? '登录中…' : '🚀 登 录' }}
</button>
<div class="login-tip">默认账号 admin · 密码 admin123(Docker 部署可通过环境变量修改)</div>
<div class="login-tip">默认账号 admin · 密码 666666(Docker 部署可通过环境变量修改)</div>
</div>
</div>
</template>