auth

package
v0.0.0-...-69fac63 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2026 License: MPL-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AESDecryptBase64

func AESDecryptBase64(cipherBase64, key string) (string, error)

AESDecryptBase64 AES解密Base64编码的密文

func CleanupGlobalTokenManager

func CleanupGlobalTokenManager()

CleanupGlobalTokenManager 清理过期 token,会定期调用

func ReloadGlobalTokenManager

func ReloadGlobalTokenManager(cfg *config.AuthConfig)

ReloadGlobalTokenManager 根据最新配置重载全局Token管理器

Types

type AuthConfig

type AuthConfig struct {
	TokensEnabled  bool         `yaml:"tokens_enabled"`   // 是否启用 token
	TokenParamName string       `yaml:"token_param_name"` // token 参数名
	DynamicTokens  DynamicToken `yaml:"dynamic_tokens"`   // 动态 token 配置
	StaticTokens   StaticToken  `yaml:"static_tokens"`    // 静态 token 列表
}

AuthConfig 授权 token 配置

type DomainMapConfig

type DomainMapConfig struct {
	Name          string            `yaml:"name"`           // 配置名称
	Source        string            `yaml:"source"`         // 源域名
	Target        string            `yaml:"target"`         // 目标域名
	Protocol      string            `yaml:"protocol"`       // 协议 http/https
	Auth          config.AuthConfig `yaml:"auth"`           // 动态/静态 token 配置
	ClientHeaders map[string]string `yaml:"client_headers"` // 前端请求使用
	ServerHeaders map[string]string `yaml:"server_headers"` // 后端请求使用
}

DomainMapConfig 域名映射配置结构

type DomainMapList

type DomainMapList []*DomainMapConfig

DomainMapList 域名映射配置列表

type DynamicToken

type DynamicToken struct {
	EnableDynamic bool          `yaml:"enable_dynamic"` // 是否启用动态 token
	DynamicTTL    time.Duration `yaml:"dynamic_ttl"`    // 动态 token 有效期,例如 1h
	Secret        string        `yaml:"secret"`         // AES key
	Salt          string        `yaml:"salt"`           // salt
}

DynamicToken 动态 token 配置

type DynamicTokenConfig

type DynamicTokenConfig struct {
	Secret string
	Salt   string
	TTL    time.Duration
}

DynamicTokenConfig 动态 token 配置

type SessionInfo

type SessionInfo struct {
	Token          string
	ConnID         string
	FirstAccessAt  time.Time
	LastActiveAt   time.Time
	ExpireDuration time.Duration
	IP             string
	URL            string
	OriginalURL    string // 记录首次访问的URL
}

SessionInfo 会话信息

type StaticToken

type StaticToken struct {
	Token        string        `yaml:"token"`         // token 值
	ExpireHours  time.Duration `yaml:"expire_hours"`  // 例如 30s, 24h
	EnableStatic bool          `yaml:"enable_static"` // 是否启用静态 token
}

StaticToken 静态 token 配置

type TokenManager

type TokenManager struct {
	Enabled        bool
	TokenParamName string

	StaticTokens  map[string]*SessionInfo
	DynamicTokens map[string]*SessionInfo
	DynamicConfig *DynamicTokenConfig
	// contains filtered or unexported fields
}

--------------------------- TokenManager 管理 token 与在线状态 ---------------------------

var GlobalTokenManager *TokenManager

全局Token管理器 全局Token管理器

func GetGlobalTokenManager

func GetGlobalTokenManager() *TokenManager

GetGlobalTokenManager 安全获取全局Token管理器

func NewGlobalTokenManagerFromConfig

func NewGlobalTokenManagerFromConfig(globalAuth *config.AuthConfig) *TokenManager

NewGlobalTokenManagerFromConfig 从全局配置创建Token管理器

func NewTokenManagerFromConfig

func NewTokenManagerFromConfig(cfg *DomainMapConfig) *TokenManager

--------------------------- 初始化 ---------------------------

func (*TokenManager) CleanupExpiredSessions

func (tm *TokenManager) CleanupExpiredSessions()

--------------------------- 清理过期 token ---------------------------

func (*TokenManager) GenerateDynamicToken

func (tm *TokenManager) GenerateDynamicToken(urlPath string) (string, error)

--------------------------- 生成动态 token ---------------------------

func (*TokenManager) KeepAlive

func (tm *TokenManager) KeepAlive(token, connID, ip, urlPath string)

--------------------------- KeepAlive 更新会话信息 ---------------------------

func (*TokenManager) ValidateToken

func (tm *TokenManager) ValidateToken(token, urlPath, connID string) bool

--------------------------- 验证 token(结合在线状态) ---------------------------

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL