feat: 登录机制改为账号+密码模式,默认账号root
This commit is contained in:
+4
-4
@@ -110,10 +110,10 @@ async def jwt_middleware(request: Request, call_next):
|
|||||||
|
|
||||||
|
|
||||||
@app.post("/api/login")
|
@app.post("/api/login")
|
||||||
async def login(password: str = Body(..., embed=True)):
|
async def login(username: str = Body(..., embed=True), password: str = Body(..., embed=True)):
|
||||||
if password != ADMIN_PASSWORD:
|
if username != "root" or password != ADMIN_PASSWORD:
|
||||||
return JSONResponse(status_code=401, content={"detail": "密码错误"})
|
return JSONResponse(status_code=401, content={"detail": "账号或密码错误"})
|
||||||
token = create_jwt_token({"user": "admin"})
|
token = create_jwt_token({"user": username})
|
||||||
return {"success": True, "token": token}
|
return {"success": True, "token": token}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+6
-1
@@ -495,8 +495,13 @@
|
|||||||
<div class="modal-backdrop"></div>
|
<div class="modal-backdrop"></div>
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<h3 id="loginTitle">系统登录</h3>
|
<h3 id="loginTitle">系统登录</h3>
|
||||||
<p>由于安全原因,请先验证您的密码</p>
|
<p>由于安全原因,请先验证您的身份</p>
|
||||||
<div class="form-group" style="margin-top: 16px;">
|
<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()">
|
<input type="password" id="loginPassword" class="form-input" placeholder="请输入密码以继续" onkeydown="if(event.key==='Enter') document.getElementById('loginBtn').click()">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-actions" style="margin-top: 24px;">
|
<div class="modal-actions" style="margin-top: 24px;">
|
||||||
|
|||||||
+3
-1
@@ -156,6 +156,8 @@ function showLoginModal() {
|
|||||||
loginInput.focus();
|
loginInput.focus();
|
||||||
|
|
||||||
const handleLogin = async () => {
|
const handleLogin = async () => {
|
||||||
|
const usernameInput = $('#loginUsername');
|
||||||
|
const username = usernameInput ? usernameInput.value : 'root';
|
||||||
const password = loginInput.value;
|
const password = loginInput.value;
|
||||||
if (!password) {
|
if (!password) {
|
||||||
showToast('请输入密码', 'warning');
|
showToast('请输入密码', 'warning');
|
||||||
@@ -166,7 +168,7 @@ function showLoginModal() {
|
|||||||
loginBtn.textContent = '登录中...';
|
loginBtn.textContent = '登录中...';
|
||||||
const res = await api('/login', {
|
const res = await api('/login', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: JSON.stringify({ password })
|
body: JSON.stringify({ username, password })
|
||||||
});
|
});
|
||||||
if (res.success && res.token) {
|
if (res.success && res.token) {
|
||||||
localStorage.setItem('token', res.token);
|
localStorage.setItem('token', res.token);
|
||||||
|
|||||||
Reference in New Issue
Block a user