部署好 EdgeEver 笔记项目后,进入登录页会自动显示默认账号admin,这对于网络安全来说是大忌,如果你使用EDGE_EVER_AUTH_USERNAME变量修改默认账号,则每次都要先清理删除admin,然后重新输入。虽然已提交给作者,但是一直没有解决这个问题,那么我们自己动手搞一下。

为什么显示默认账号?
默认 admin 账号显示在登录页,是由前端代码硬编码(apps/web/src/components/LoginScreen.tsx第 17-22 行)决定的。
const DEMO_LOGIN_CREDENTIALS = {
username: "ee-demo",
password: "demo#dZ6Q29Zjfor%",
};
const getDefaultLoginCredentials = () => {
const hostname = window.location.hostname;
const isDemoHost = hostname === "demo.edgeever.org" || hostname.startsWith("edgeever-demo.");
// 👇 非 Demo 环境默认返回 admin + 空密码
return isDemoHost ? DEMO_LOGIN_CREDENTIALS : { username: "admin", password: "" };
};
然后用户名输入框的初始状态直接取自这里(第 32 行):
const [username, setUsername] = useState(() => getDefaultLoginCredentials().username);
只要你的部署域名不是 demo.edgeever.org 或其子域名,登录页的username输入框就会自动填入admin。哪怕使用EDGE_EVER_AUTH_USERNAME变量修改默认账号,前端还是显示admin……
所以解决方法也很简单,将getDefaultLoginCredentials的默认返回值改为空字符串即可。
const getDefaultLoginCredentials = () => {
const hostname = window.location.hostname;
const isDemoHost = hostname === "demo.edgeever.org" || hostname.startsWith("edgeever-demo.");
return isDemoHost ? DEMO_LOGIN_CREDENTIALS : { username: "", password: "" };
};
只要修改了之后,那么无论你是使用默认账号还是自定义账号,这里都将不会显示,安全性更好。
你为了方便,想显示自己的管理员账号,那么我们只需要返回值改为变量即可。
const getDefaultLoginCredentials = () => {
const hostname = window.location.hostname;
const isDemoHost = hostname === "demo.edgeever.org" || hostname.startsWith("edgeever-demo.");
if (isDemoHost) return DEMO_LOGIN_CREDENTIALS;
// 从构建时注入的环境变量读取,留空则不预填
return { username: __EDGEEVER_DEFAULT_USERNAME__, password: __EDGEEVER_DEFAULT_PASSWORD__ };
};
只要在部署的时候在 Cloudflare 上设置好EDGE_EVER_AUTH_USERNAME变量的值(用户名),就会在前端显示你的自定义用户名。
一劳永逸
But,考虑到 EdgeEver 的更新频率,每次 sync fork 都会把对 LoginScreen.tsx 的修改覆盖掉,每次去手动改确实不现实。
进入 Cloudflare 仪表板 → 你的 EdgeEver 项目 → 设置 → 构建配置,将构建命令(Build command)从原来的:
bun run build
改为 前置一行 sed 替换:
sed -i 's/return isDemoHost ? DEMO_LOGIN_CREDENTIALS : { username: "admin", password: "" };/return isDemoHost ? DEMO_LOGIN_CREDENTIALS : { username: "", password: "" };/' apps/web/src/components/LoginScreen.tsx && bun run build
保存,下次部署时自动生效。这样下来,不需要修改任何源码,sync fork 零冲突。Cloudflare 原生支持,无需额外依赖。每次构建自动执行,一劳永逸。
等哪天作者修复这个功能后,删掉这一段即可。











