Documentation
¶
Index ¶
- Variables
- func GenerateAPIKey() (string, error)
- type APIKeyAuthenticator
- type APIKeyInfo
- type APIKeyStore
- type AuthMethod
- type Authenticator
- type JWTAuthenticator
- func (a *JWTAuthenticator) Authenticate(ctx context.Context, credentials any) (*User, error)
- func (a *JWTAuthenticator) GenerateToken(user *User) (string, time.Time, error)
- func (a *JWTAuthenticator) Method() AuthMethod
- func (a *JWTAuthenticator) RefreshToken(tokenString string) (string, time.Time, error)
- func (a *JWTAuthenticator) Validate(ctx context.Context, tokenString string) (*User, error)
- type JWTClaims
- type JWTConfig
- type Manager
- func (m *Manager) Authenticate(ctx context.Context, method AuthMethod, credentials any) (*User, error)
- func (m *Manager) DefaultMethod() AuthMethod
- func (m *Manager) GetAuthenticator(method AuthMethod) (Authenticator, bool)
- func (m *Manager) Register(auth Authenticator)
- func (m *Manager) Validate(ctx context.Context, method AuthMethod, token string) (*User, error)
- type MemoryAPIKeyStore
- func (s *MemoryAPIKeyStore) Create(ctx context.Context, info *APIKeyInfo) error
- func (s *MemoryAPIKeyStore) Delete(ctx context.Context, key string) error
- func (s *MemoryAPIKeyStore) Get(ctx context.Context, key string) (*APIKeyInfo, error)
- func (s *MemoryAPIKeyStore) List(ctx context.Context, userID string) ([]*APIKeyInfo, error)
- type Permission
- type RBAC
- func (r *RBAC) AddRole(role *Role)
- func (r *RBAC) CheckPermission(ctx context.Context, user *User, resource string, action string) error
- func (r *RBAC) GetRole(name string) (*Role, bool)
- func (r *RBAC) GetUserPermissions(user *User) []Permission
- func (r *RBAC) HasPermission(ctx context.Context, user *User, resource string, action string) bool
- func (r *RBAC) RegisterDefaultRoles()
- type Role
- type TokenInfo
- type User
Constants ¶
This section is empty.
Variables ¶
Functions ¶
Types ¶
type APIKeyAuthenticator ¶
type APIKeyAuthenticator struct {
// contains filtered or unexported fields
}
APIKeyAuthenticator API Key 认证器
func NewAPIKeyAuthenticator ¶
func NewAPIKeyAuthenticator(store APIKeyStore) *APIKeyAuthenticator
NewAPIKeyAuthenticator 创建 API Key 认证器
func (*APIKeyAuthenticator) Authenticate ¶
Authenticate 验证 API Key
func (*APIKeyAuthenticator) Method ¶
func (a *APIKeyAuthenticator) Method() AuthMethod
Method 返回认证方法类型
type APIKeyInfo ¶
type APIKeyInfo struct {
Key string `json:"key"`
UserID string `json:"user_id"`
Name string `json:"name"`
Roles []string `json:"roles"`
ExpiresAt *time.Time `json:"expires_at,omitempty"`
CreatedAt time.Time `json:"created_at"`
LastUsed *time.Time `json:"last_used,omitempty"`
Metadata map[string]any `json:"metadata,omitempty"`
}
APIKeyInfo API Key 信息
type APIKeyStore ¶
type APIKeyStore interface {
// Get 获取 API Key 信息
Get(ctx context.Context, key string) (*APIKeyInfo, error)
// Create 创建新的 API Key
Create(ctx context.Context, info *APIKeyInfo) error
// Delete 删除 API Key
Delete(ctx context.Context, key string) error
// List 列出用户的所有 API Keys
List(ctx context.Context, userID string) ([]*APIKeyInfo, error)
}
APIKeyStore API Key 存储接口
type AuthMethod ¶
type AuthMethod string
AuthMethod 认证方法类型
const ( AuthMethodAPIKey AuthMethod = "apikey" AuthMethodJWT AuthMethod = "jwt" AuthMethodOAuth AuthMethod = "oauth" )
type Authenticator ¶
type Authenticator interface {
// Authenticate 验证凭证并返回用户信息
Authenticate(ctx context.Context, credentials any) (*User, error)
// Validate 验证令牌是否有效
Validate(ctx context.Context, token string) (*User, error)
// Method 返回认证方法类型
Method() AuthMethod
}
Authenticator 认证器接口
type JWTAuthenticator ¶
type JWTAuthenticator struct {
// contains filtered or unexported fields
}
JWTAuthenticator JWT 认证器
func NewJWTAuthenticator ¶
func NewJWTAuthenticator(config JWTConfig) *JWTAuthenticator
NewJWTAuthenticator 创建 JWT 认证器
func (*JWTAuthenticator) Authenticate ¶
Authenticate 生成 JWT 令牌
func (*JWTAuthenticator) GenerateToken ¶
GenerateToken 生成 JWT 令牌
func (*JWTAuthenticator) RefreshToken ¶
RefreshToken 刷新令牌
type JWTClaims ¶
type JWTClaims struct {
jwt.RegisteredClaims
UserID string `json:"user_id"`
Username string `json:"username"`
Email string `json:"email"`
Roles []string `json:"roles"`
}
JWTClaims JWT 声明
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager 认证管理器
func (*Manager) Authenticate ¶
func (m *Manager) Authenticate(ctx context.Context, method AuthMethod, credentials any) (*User, error)
Authenticate 使用指定方法进行认证
func (*Manager) GetAuthenticator ¶
func (m *Manager) GetAuthenticator(method AuthMethod) (Authenticator, bool)
GetAuthenticator 获取指定类型的认证器
type MemoryAPIKeyStore ¶
type MemoryAPIKeyStore struct {
// contains filtered or unexported fields
}
MemoryAPIKeyStore 内存 API Key 存储(用于测试和开发)
func NewMemoryAPIKeyStore ¶
func NewMemoryAPIKeyStore() *MemoryAPIKeyStore
NewMemoryAPIKeyStore 创建内存存储
func (*MemoryAPIKeyStore) Create ¶
func (s *MemoryAPIKeyStore) Create(ctx context.Context, info *APIKeyInfo) error
Create 创建或更新 API Key
func (*MemoryAPIKeyStore) Delete ¶
func (s *MemoryAPIKeyStore) Delete(ctx context.Context, key string) error
Delete 删除 API Key
func (*MemoryAPIKeyStore) Get ¶
func (s *MemoryAPIKeyStore) Get(ctx context.Context, key string) (*APIKeyInfo, error)
Get 获取 API Key 信息
func (*MemoryAPIKeyStore) List ¶
func (s *MemoryAPIKeyStore) List(ctx context.Context, userID string) ([]*APIKeyInfo, error)
List 列出用户的所有 API Keys
type Permission ¶
type Permission struct {
Resource string `json:"resource"` // e.g., "agents", "workflows"
Actions []string `json:"actions"` // e.g., ["create", "read", "update", "delete"]
}
Permission 权限
type RBAC ¶
type RBAC struct {
// contains filtered or unexported fields
}
RBAC 基于角色的访问控制
func (*RBAC) CheckPermission ¶
func (r *RBAC) CheckPermission(ctx context.Context, user *User, resource string, action string) error
CheckPermission 检查权限,返回错误
func (*RBAC) GetUserPermissions ¶
func (r *RBAC) GetUserPermissions(user *User) []Permission
GetUserPermissions 获取用户的所有权限
func (*RBAC) HasPermission ¶
HasPermission 检查用户是否有指定权限
func (*RBAC) RegisterDefaultRoles ¶
func (r *RBAC) RegisterDefaultRoles()
RegisterDefaultRoles 注册默认角色
type Role ¶
type Role struct {
Name string `json:"name"`
Description string `json:"description,omitempty"`
Permissions []Permission `json:"permissions"`
}
Role 角色