feat: 登录机制改为账号+密码模式,默认账号root

This commit is contained in:
2026-04-22 15:58:59 +08:00
parent 51084de7e1
commit fa657940af
3 changed files with 13 additions and 6 deletions
+4 -4
View File
@@ -110,10 +110,10 @@ async def jwt_middleware(request: Request, call_next):
@app.post("/api/login")
async def login(password: str = Body(..., embed=True)):
if password != ADMIN_PASSWORD:
return JSONResponse(status_code=401, content={"detail": "密码错误"})
token = create_jwt_token({"user": "admin"})
async def login(username: str = Body(..., embed=True), password: str = Body(..., embed=True)):
if username != "root" or password != ADMIN_PASSWORD:
return JSONResponse(status_code=401, content={"detail": "账号或密码错误"})
token = create_jwt_token({"user": username})
return {"success": True, "token": token}
+6 -1
View File
@@ -495,8 +495,13 @@
<div class="modal-backdrop"></div>
<div class="modal-content">
<h3 id="loginTitle">系统登录</h3>
<p>由于安全原因,请先验证您的密码</p>
<p>由于安全原因,请先验证您的身份</p>
<div class="form-group" style="margin-top: 16px;">
<label>账号</label>
<input type="text" id="loginUsername" class="form-input" value="root" readonly style="background-color: var(--td-bg-color-component); color: var(--td-text-color-secondary); cursor: not-allowed;">
</div>
<div class="form-group" style="margin-top: 16px;">
<label>密码</label>
<input type="password" id="loginPassword" class="form-input" placeholder="请输入密码以继续" onkeydown="if(event.key==='Enter') document.getElementById('loginBtn').click()">
</div>
<div class="modal-actions" style="margin-top: 24px;">
+3 -1
View File
@@ -156,6 +156,8 @@ function showLoginModal() {
loginInput.focus();
const handleLogin = async () => {
const usernameInput = $('#loginUsername');
const username = usernameInput ? usernameInput.value : 'root';
const password = loginInput.value;
if (!password) {
showToast('请输入密码', 'warning');
@@ -166,7 +168,7 @@ function showLoginModal() {
loginBtn.textContent = '登录中...';
const res = await api('/login', {
method: 'POST',
body: JSON.stringify({ password })
body: JSON.stringify({ username, password })
});
if (res.success && res.token) {
localStorage.setItem('token', res.token);