- Deleted version comparison logic from `pkg/plugin/sign/version.go`. - Removed unused types and constants from `pkg/plugin/types.go`. - Updated `pkg/protocol/message.go` to remove plugin-related message types. - Enhanced `pkg/proxy/http.go` and `pkg/proxy/socks5.go` to include username/password authentication for HTTP and SOCKS5 proxies. - Modified `pkg/proxy/server.go` to pass authentication parameters to server constructors. - Added new API endpoint to generate installation commands with a token for clients. - Created database functions to manage installation tokens in `internal/server/db/install_token.go`. - Implemented the installation command generation logic in `internal/server/router/handler/install.go`. - Updated web frontend to support installation command generation and display in `web/src/views/ClientsView.vue`.
47 lines
1.9 KiB
Go
47 lines
1.9 KiB
Go
package dto
|
|
|
|
import (
|
|
"github.com/gotunnel/pkg/protocol"
|
|
)
|
|
|
|
// CreateClientRequest 创建客户端请求
|
|
// @Description 创建新客户端的请求体
|
|
type CreateClientRequest struct {
|
|
ID string `json:"id" binding:"required,min=1,max=64" example:"client-001"`
|
|
Rules []protocol.ProxyRule `json:"rules"`
|
|
}
|
|
|
|
// UpdateClientRequest 更新客户端请求
|
|
// @Description 更新客户端配置的请求体
|
|
type UpdateClientRequest struct {
|
|
Nickname string `json:"nickname" binding:"max=128" example:"My Client"`
|
|
Rules []protocol.ProxyRule `json:"rules"`
|
|
}
|
|
|
|
// ClientResponse 客户端详情响应
|
|
// @Description 客户端详细信息
|
|
type ClientResponse struct {
|
|
ID string `json:"id" example:"client-001"`
|
|
Nickname string `json:"nickname,omitempty" example:"My Client"`
|
|
Rules []protocol.ProxyRule `json:"rules"`
|
|
Online bool `json:"online" example:"true"`
|
|
LastPing string `json:"last_ping,omitempty" example:"2025-01-02T10:30:00Z"`
|
|
RemoteAddr string `json:"remote_addr,omitempty" example:"192.168.1.100:54321"`
|
|
OS string `json:"os,omitempty" example:"linux"`
|
|
Arch string `json:"arch,omitempty" example:"amd64"`
|
|
Version string `json:"version,omitempty" example:"1.0.0"`
|
|
}
|
|
|
|
// ClientListItem 客户端列表项
|
|
// @Description 客户端列表中的单个项目
|
|
type ClientListItem struct {
|
|
ID string `json:"id" example:"client-001"`
|
|
Nickname string `json:"nickname,omitempty" example:"My Client"`
|
|
Online bool `json:"online" example:"true"`
|
|
LastPing string `json:"last_ping,omitempty"`
|
|
RemoteAddr string `json:"remote_addr,omitempty"`
|
|
RuleCount int `json:"rule_count" example:"3"`
|
|
OS string `json:"os,omitempty" example:"linux"`
|
|
Arch string `json:"arch,omitempty" example:"amd64"`
|
|
}
|