41 lines
1.5 KiB
Go
41 lines
1.5 KiB
Go
package model
|
||
|
||
import (
|
||
"time"
|
||
|
||
"gorm.io/gorm"
|
||
)
|
||
|
||
type AccessToken struct {
|
||
gorm.Model
|
||
Token string `gorm:"uniqueIndex" json:"token"` // 访问令牌
|
||
DeviceUID string `gorm:"index" json:"device_uid"` // 关联的设备UID
|
||
Type string `gorm:"size:20" json:"type"` // 令牌类型:api/device
|
||
Status string `gorm:"size:20" json:"status"` // 状态:active/revoked
|
||
ExpireTime time.Time `json:"expire_time"` // 过期时间
|
||
LastUsed time.Time `json:"last_used"` // 最后使用时间
|
||
UsageCount int `gorm:"default:0" json:"usage_count"` // 使用次数
|
||
IPList string `gorm:"type:text" json:"ip_list"` // 允许的IP列表,逗号分隔
|
||
CreatedBy uint `gorm:"index" json:"created_by"` // 创建者ID
|
||
}
|
||
|
||
// TableName 指定表名
|
||
func (AccessToken) TableName() string {
|
||
return "access_tokens"
|
||
}
|
||
|
||
type TokenLog struct {
|
||
gorm.Model
|
||
TokenID uint `gorm:"index" json:"token_id"` // 关联的令牌ID
|
||
Action string `gorm:"size:20" json:"action"` // 操作类型:create/use/revoke
|
||
IP string `gorm:"size:50" json:"ip"` // 操作IP
|
||
UserAgent string `gorm:"size:255" json:"user_agent"` // User-Agent
|
||
Status string `gorm:"size:20" json:"status"` // 状态:success/failed
|
||
Message string `gorm:"size:500" json:"message"` // 详细信息
|
||
}
|
||
|
||
// TableName 指定表名
|
||
func (TokenLog) TableName() string {
|
||
return "token_logs"
|
||
}
|