feat: 完善登录认证系统

- 首次使用强制设置密码(至少6位)
- 密码存数据库(SHA256哈希),前端可修改
- 登录失败5次锁定5分钟,防爆破
- 导航栏添加修改密码入口
- 移除硬编码默认密码
This commit is contained in:
2026-04-02 12:11:09 +08:00
parent 6ab6666cac
commit c293f3d4ac
8 changed files with 278 additions and 46 deletions

View File

@@ -10,27 +10,24 @@
body { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh;
display: flex; align-items: center; justify-content: center;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.login-card { width: 360px; border-radius: 18px; border: none;
box-shadow: 0 8px 40px rgba(0,0,0,.2); }
.login-header { text-align: center; padding: 2rem 2rem 1rem; }
.login-header i { font-size: 2.5rem; color: #667eea; }
.login-header h4 { margin-top: .8rem; font-weight: 600; color: #333; }
.login-body { padding: 0 2rem 2rem; }
.card { width: 360px; border-radius: 18px; border: none; box-shadow: 0 8px 40px rgba(0,0,0,.2); }
.card-header { text-align: center; padding: 2rem 2rem 1rem; background: none; border: none; }
.card-header i { font-size: 2.5rem; color: #667eea; }
.card-header h4 { margin-top: .8rem; font-weight: 600; color: #333; }
.card-body { padding: 0 2rem 2rem; }
.form-control { border-radius: 10px; padding: .6rem 1rem; }
.form-control:focus { border-color: #667eea; box-shadow: 0 0 0 .2rem rgba(102,126,234,.15); }
.btn-login { background: linear-gradient(135deg, #667eea, #764ba2); border: none;
border-radius: 10px; padding: .6rem; font-weight: 500; width: 100%; }
.btn-login:hover { opacity: .9; }
.btn-primary { background: linear-gradient(135deg, #667eea, #764ba2); border: none;
border-radius: 10px; padding: .6rem; font-weight: 500; width: 100%; }
.alert { border-radius: 10px; font-size: .85rem; }
</style>
</head>
<body>
<div class="card login-card">
<div class="login-header">
<div class="card">
<div class="card-header">
<i class="bi bi-lightning-charge-fill"></i>
<h4>微店抢购管理</h4>
</div>
<div class="login-body">
<div class="card-body">
{% if error %}
<div class="alert alert-danger py-2">{{ error }}</div>
{% endif %}
@@ -39,7 +36,7 @@
<input type="password" class="form-control" name="password"
placeholder="请输入访问密码" autofocus required>
</div>
<button type="submit" class="btn btn-primary btn-login">登 录</button>
<button type="submit" class="btn btn-primary">登 录</button>
</form>
</div>
</div>