feat: 认证简化为固定进入密钥 + 页面增强(API 文档/主题切换/版权署名)
- 移除管理员初始化/登录/JWT 流程,改为固定进入密钥(19735500), 首次启动自动初始化到数据库 settings 表(可改库更新) - analyze 接口支持可选密钥鉴权:X-Access-Key 请求头或 access_key 字段, 带密钥强制校验(错误 401),不带密钥保持免鉴权 - 解锁后顶栏"复制 API 文档"按钮:以当前访问 URL 为基础地址动态生成 Markdown 文档(免鉴权/带密钥两种 curl 示例,供智能体直接调用) - 白昼/黑夜主题切换:CSS 变量驱动,localStorage 持久化,默认跟随系统 - 修复 hidden 属性被 display:flex 覆盖导致解锁层无法隐藏的问题 - 页面去除"免费/Agnes"文案,页脚署名青梧映星软件开发工作室 - build.bat/build.sh 简化为 Linux 交叉编译(CGO_ENABLED=0) - 依赖精简:移除 golang-jwt/bcrypt,直接依赖仅 gin/sqlite/gorm/yaml Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -2,13 +2,17 @@ package model
|
||||
|
||||
import "time"
|
||||
|
||||
// User 管理员账号。
|
||||
type User struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
Username string `gorm:"uniqueIndex;size:64" json:"username"`
|
||||
PasswordHash string `gorm:"size:255" json:"-"`
|
||||
Role string `gorm:"size:32" json:"role"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
// 配置键
|
||||
const (
|
||||
KeyAccessKey = "access_key" // 页面进入密钥
|
||||
)
|
||||
|
||||
// Setting 应用配置(key-value),初始数据在启动时写入数据库。
|
||||
type Setting struct {
|
||||
Key string `gorm:"primaryKey;size:64" json:"key"`
|
||||
Value string `gorm:"size:255" json:"value"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
// Response 统一响应格式 {code, message, data}。
|
||||
@@ -20,13 +24,13 @@ type Response struct {
|
||||
|
||||
// 业务错误码
|
||||
const (
|
||||
CodeOK = 0
|
||||
CodeBadParam = 400
|
||||
CodeOK = 0
|
||||
CodeBadParam = 400
|
||||
CodeUnauthorized = 401
|
||||
CodeForbidden = 403
|
||||
CodeNotFound = 404
|
||||
CodeConflict = 409
|
||||
CodeServerErr = 500
|
||||
CodeForbidden = 403
|
||||
CodeNotFound = 404
|
||||
CodeConflict = 409
|
||||
CodeServerErr = 500
|
||||
)
|
||||
|
||||
func OK(data interface{}) *Response {
|
||||
|
||||
Reference in New Issue
Block a user