mirror of
https://github.com/skyle1995/NetworkAuth.git
synced 2026-05-25 02:24:05 +08:00
New interface management
Optimize the pop-up interface
This commit is contained in:
170
models/api.go
170
models/api.go
@@ -1,10 +1,11 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
"encoding/hex"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
@@ -30,24 +31,24 @@ type API struct {
|
||||
Status int `gorm:"default:1;not null;comment:接口状态,1=启用,0=禁用" json:"status"`
|
||||
|
||||
// 接口提交算法
|
||||
// 支持的算法:0=不加密,1=RC4,2=RSA,3=RSA(动态)
|
||||
SubmitAlgorithm int `gorm:"default:0;not null;comment:提交算法,0=不加密,1=RC4,2=RSA,3=RSA动态" json:"submit_algorithm"`
|
||||
// 支持的算法:0=不加密,1=RC4,2=RSA,3=RSA(动态),4=易加密
|
||||
SubmitAlgorithm int `gorm:"default:0;not null;comment:提交算法,0=不加密,1=RC4,2=RSA,3=RSA动态,4=易加密" json:"submit_algorithm"`
|
||||
|
||||
// 接口返回算法
|
||||
// 支持的算法:0=不加密,1=RC4,2=RSA,3=RSA(动态)
|
||||
ReturnAlgorithm int `gorm:"default:0;not null;comment:返回算法,0=不加密,1=RC4,2=RSA,3=RSA动态" json:"return_algorithm"`
|
||||
// 支持的算法:0=不加密,1=RC4,2=RSA,3=RSA(动态),4=易加密
|
||||
ReturnAlgorithm int `gorm:"default:0;not null;comment:返回算法,0=不加密,1=RC4,2=RSA,3=RSA动态,4=易加密" json:"return_algorithm"`
|
||||
|
||||
// 提交算法公钥(base64编码存储)
|
||||
SubmitPublicKey string `gorm:"type:text;comment:提交算法公钥,base64编码" json:"submit_public_key"`
|
||||
// 提交算法公钥(明文PEM存储)
|
||||
SubmitPublicKey string `gorm:"type:text;comment:提交算法公钥,明文PEM" json:"submit_public_key"`
|
||||
|
||||
// 提交算法私钥(base64编码存储)
|
||||
SubmitPrivateKey string `gorm:"type:text;comment:提交算法私钥,base64编码" json:"submit_private_key"`
|
||||
// 提交算法私钥(明文PEM存储)
|
||||
SubmitPrivateKey string `gorm:"type:text;comment:提交算法私钥,明文PEM" json:"submit_private_key"`
|
||||
|
||||
// 返回算法公钥(base64编码存储)
|
||||
ReturnPublicKey string `gorm:"type:text;comment:返回算法公钥,base64编码" json:"return_public_key"`
|
||||
// 返回算法公钥(明文PEM存储)
|
||||
ReturnPublicKey string `gorm:"type:text;comment:返回算法公钥,明文PEM" json:"return_public_key"`
|
||||
|
||||
// 返回算法私钥(base64编码存储)
|
||||
ReturnPrivateKey string `gorm:"type:text;comment:返回算法私钥,base64编码" json:"return_private_key"`
|
||||
// 返回算法私钥(明文PEM存储)
|
||||
ReturnPrivateKey string `gorm:"type:text;comment:返回算法私钥,明文PEM" json:"return_private_key"`
|
||||
|
||||
// 时间字段
|
||||
CreatedAt time.Time `gorm:"comment:创建时间" json:"created_at"`
|
||||
@@ -57,8 +58,10 @@ type API struct {
|
||||
// BeforeCreate 在创建记录前自动生成API密钥
|
||||
func (api *API) BeforeCreate(tx *gorm.DB) error {
|
||||
if api.APIKey == "" {
|
||||
// 生成唯一的API密钥
|
||||
api.APIKey = "api_" + strings.ToUpper(uuid.New().String())
|
||||
// 生成16位大写十六进制API密钥
|
||||
bytes := make([]byte, 8) // 8字节 = 16位十六进制字符
|
||||
rand.Read(bytes)
|
||||
api.APIKey = strings.ToUpper(hex.EncodeToString(bytes))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -68,12 +71,50 @@ func (API) TableName() string {
|
||||
return "apis"
|
||||
}
|
||||
|
||||
// API类型常量定义
|
||||
const (
|
||||
// 基础信息获取类API
|
||||
APITypeGetBulletin = 1 // 获取程序公告
|
||||
APITypeGetUpdateUrl = 2 // 获取更新地址
|
||||
APITypeCheckAppVersion = 3 // 检测最新版本
|
||||
APITypeGetCardInfo = 4 // 获取卡密信息
|
||||
|
||||
// 登录相关API
|
||||
APITypeSingleLogin = 10 // 卡密登录
|
||||
|
||||
// 用户账号管理API
|
||||
APITypeUserLogin = 20 // 用户登录
|
||||
APITypeUserRegin = 21 // 用户注册
|
||||
APITypeUserRecharge = 22 // 用户充值
|
||||
APITypeCardRegin = 23 // 卡密注册
|
||||
|
||||
// 登出API
|
||||
APITypeLogOut = 30 // 退出登录
|
||||
|
||||
// 用户状态查询API
|
||||
APITypeGetExpired = 40 // 获取到期时间
|
||||
APITypeCheckUserStatus = 41 // 检测账号状态
|
||||
APITypeGetAppData = 42 // 获取程序数据
|
||||
APITypeGetVariable = 43 // 获取变量数据
|
||||
|
||||
// 用户操作API
|
||||
APITypeUpdatePwd = 50 // 修改账号密码
|
||||
APITypeMacChangeBind = 51 // 机器码转绑
|
||||
APITypeIPChangeBind = 52 // IP转绑
|
||||
|
||||
// 管理员操作API
|
||||
APITypeDisableUser = 60 // 封停用户
|
||||
APITypeBlackUser = 61 // 添加黑名单
|
||||
APITypeUserDeductedTime = 62 // 扣除时间
|
||||
)
|
||||
|
||||
// 算法类型常量
|
||||
const (
|
||||
AlgorithmNone = 0 // 不加密
|
||||
AlgorithmRC4 = 1 // RC4
|
||||
AlgorithmRSA = 2 // RSA
|
||||
AlgorithmRSADynamic = 3 // RSA(动态)
|
||||
AlgorithmEasy = 4 // 易加密
|
||||
)
|
||||
|
||||
// GetAlgorithmName 获取算法名称
|
||||
@@ -87,6 +128,8 @@ func GetAlgorithmName(algorithm int) string {
|
||||
return "RSA"
|
||||
case AlgorithmRSADynamic:
|
||||
return "RSA(动态)"
|
||||
case AlgorithmEasy:
|
||||
return "易加密"
|
||||
default:
|
||||
return "未知算法"
|
||||
}
|
||||
@@ -94,5 +137,100 @@ func GetAlgorithmName(algorithm int) string {
|
||||
|
||||
// IsValidAlgorithm 验证算法类型是否有效
|
||||
func IsValidAlgorithm(algorithm int) bool {
|
||||
return algorithm >= AlgorithmNone && algorithm <= AlgorithmRSADynamic
|
||||
return algorithm >= AlgorithmNone && algorithm <= AlgorithmEasy
|
||||
}
|
||||
|
||||
// GetAPITypeName 获取API类型名称
|
||||
func GetAPITypeName(apiType int) string {
|
||||
switch apiType {
|
||||
// 基础信息获取类API
|
||||
case APITypeGetBulletin:
|
||||
return "获取程序公告"
|
||||
case APITypeGetUpdateUrl:
|
||||
return "获取更新地址"
|
||||
case APITypeCheckAppVersion:
|
||||
return "检测最新版本"
|
||||
case APITypeGetCardInfo:
|
||||
return "获取卡密信息"
|
||||
|
||||
// 登录相关API
|
||||
case APITypeSingleLogin:
|
||||
return "卡密登录"
|
||||
|
||||
// 用户账号管理API
|
||||
case APITypeUserLogin:
|
||||
return "用户登录"
|
||||
case APITypeUserRegin:
|
||||
return "用户注册"
|
||||
case APITypeUserRecharge:
|
||||
return "用户充值"
|
||||
case APITypeCardRegin:
|
||||
return "卡密注册"
|
||||
|
||||
// 登出API
|
||||
case APITypeLogOut:
|
||||
return "退出登录"
|
||||
|
||||
// 用户状态查询API
|
||||
case APITypeGetExpired:
|
||||
return "获取到期时间"
|
||||
case APITypeCheckUserStatus:
|
||||
return "检测账号状态"
|
||||
case APITypeGetAppData:
|
||||
return "获取程序数据"
|
||||
case APITypeGetVariable:
|
||||
return "获取变量数据"
|
||||
|
||||
// 用户操作API
|
||||
case APITypeUpdatePwd:
|
||||
return "修改账号密码"
|
||||
case APITypeMacChangeBind:
|
||||
return "机器码转绑"
|
||||
case APITypeIPChangeBind:
|
||||
return "IP转绑"
|
||||
|
||||
// 管理员操作API
|
||||
case APITypeDisableUser:
|
||||
return "封停用户"
|
||||
case APITypeBlackUser:
|
||||
return "添加黑名单"
|
||||
case APITypeUserDeductedTime:
|
||||
return "扣除时间"
|
||||
|
||||
default:
|
||||
return "未知API类型"
|
||||
}
|
||||
}
|
||||
|
||||
// IsValidAPIType 验证API类型是否有效
|
||||
func IsValidAPIType(apiType int) bool {
|
||||
validTypes := []int{
|
||||
APITypeGetBulletin, APITypeGetUpdateUrl, APITypeCheckAppVersion, APITypeGetCardInfo,
|
||||
APITypeSingleLogin,
|
||||
APITypeUserLogin, APITypeUserRegin, APITypeUserRecharge, APITypeCardRegin,
|
||||
APITypeLogOut,
|
||||
APITypeGetExpired, APITypeCheckUserStatus, APITypeGetAppData, APITypeGetVariable,
|
||||
APITypeUpdatePwd, APITypeMacChangeBind, APITypeIPChangeBind,
|
||||
APITypeDisableUser, APITypeBlackUser, APITypeUserDeductedTime,
|
||||
}
|
||||
|
||||
for _, validType := range validTypes {
|
||||
if apiType == validType {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// GetAPITypesByCategory 根据分类获取API类型列表
|
||||
func GetAPITypesByCategory() map[string][]int {
|
||||
return map[string][]int{
|
||||
"基础信息获取": {APITypeGetBulletin, APITypeGetUpdateUrl, APITypeCheckAppVersion, APITypeGetCardInfo},
|
||||
"登录相关": {APITypeSingleLogin},
|
||||
"用户账号管理": {APITypeUserLogin, APITypeUserRegin, APITypeUserRecharge, APITypeCardRegin},
|
||||
"登出": {APITypeLogOut},
|
||||
"用户状态查询": {APITypeGetExpired, APITypeCheckUserStatus, APITypeGetAppData, APITypeGetVariable},
|
||||
"用户操作": {APITypeUpdatePwd, APITypeMacChangeBind, APITypeIPChangeBind},
|
||||
"管理员操作": {APITypeDisableUser, APITypeBlackUser, APITypeUserDeductedTime},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,9 @@ type App struct {
|
||||
// DownloadURL:下载地址
|
||||
DownloadURL string `gorm:"size:500;comment:下载地址" json:"download_url"`
|
||||
|
||||
// AppData:应用数据(base64编码存储)
|
||||
AppData string `gorm:"type:text;comment:应用数据,base64编码存储" json:"app_data"`
|
||||
|
||||
// Announcement:程序公告内容(base64编码存储)
|
||||
Announcement string `gorm:"type:text;comment:程序公告内容,base64编码存储" json:"announcement"`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user