Files
mce/templates/MetaLab-2026/html/auth/login.html
Victor_Jay 0014bdb9ff feat: 品牌CMS配置化 + cookie_secure配置
- config.yaml 新增 server.cookie_secure 配置项
- site_settings 新增 site_name/site_tagline/contact_email 站点信息
- SiteInfo 结构体扩展,支持运行时从 DB 读取站点品牌信息
- cookie.go 使用 cfg.Server.CookieSecure 替代 Mode!=debug 判断
- SetSessionCookie/ClearSessionCookie 支持 siteSettings 运行时覆盖
- 模板替换硬编码 MetaLab → {{.SiteName}}(nav/header/footer/home/login/register/guidelines/admin,12+处)
- 管理后台站点设置页新增站点名称/标语/联系邮箱输入项
- 页脚版权年份改为动态 CurrentYear
- 注册成功消息 CMS 化(后端+前端)
2026-06-21 23:34:14 +08:00

48 lines
1.9 KiB
HTML

{{template "layout/header.html" .}}
<body>
{{template "layout/nav.html" .}}
<main class="auth-page">
<div class="auth-card">
<h2>登录 {{.SiteName}}</h2>
<p class="auth-subtitle">回到开发者社区</p>
<form id="loginForm" novalidate>
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
<div class="form-group">
<label for="email">邮箱地址</label>
<input type="email" id="email" placeholder="your@email.com" required>
<span class="form-error" id="emailError">请输入有效的邮箱地址</span>
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" id="password" placeholder="输入密码" required>
<span class="form-error" id="passwordError">请输入密码</span>
</div>
<div class="form-group remember-group">
<label class="remember-label">
<input type="checkbox" id="rememberMe">
保持登录 30 天
</label>
<span class="remember-hint">非共享设备推荐</span>
</div>
<button type="submit" class="submit-btn" id="submitBtn">登 录</button>
</form>
<div class="auth-footer">
{{if not .IsMaintenance}}还没有账号?<a href="/auth/register">立即注册</a>{{end}}
</div>
</div>
</main>
<div class="toast" id="toast"></div>
{{template "layout/footer.html" .}}
<button class="scroll-top-btn" id="scrollTopBtn">
<svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="19" x2="12" y2="5"/><polyline points="5 12 12 5 19 12"/></svg>
</button>
<script src="/static/js/login.js?v={{assetV "/static/js/login.js"}}" nonce="{{.CSPNonce}}"></script>
</body>
</html>