manager

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultDevice   = "default"
	DefaultPrefix   = "satoken"
	DisableValue    = "1"
	DefaultNonceTTL = 5 * time.Minute

	// Key prefixes | 键前缀
	TokenKeyPrefix   = "token:"
	AccountKeyPrefix = "account:"
	DisableKeyPrefix = "disable:"

	// Session keys | Session键
	SessionKeyLoginID     = "loginId"
	SessionKeyDevice      = "device"
	SessionKeyLoginTime   = "loginTime"
	SessionKeyPermissions = "permissions"
	SessionKeyRoles       = "roles"

	// Wildcard for permissions | 权限通配符
	PermissionWildcard  = "*"
	PermissionSeparator = ":"
)

Constants for storage keys and default values | 存储键和默认值常量

Variables

View Source
var (
	ErrAccountDisabled  = fmt.Errorf("account is disabled")
	ErrNotLogin         = fmt.Errorf("not login")
	ErrTokenNotFound    = fmt.Errorf("token not found")
	ErrInvalidTokenData = fmt.Errorf("invalid token data")
)

Error variables | 错误变量

Functions

This section is empty.

Types

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager Authentication manager | 认证管理器

func NewManager

func NewManager(storage adapter.Storage, cfg *config.Config) *Manager

NewManager Creates a new manager | 创建管理器

func (*Manager) CheckLogin

func (m *Manager) CheckLogin(tokenValue string) error

CheckLogin Checks login status (throws error if not logged in) | 检查登录(未登录抛出错误)

func (*Manager) Close

func (m *Manager) Close()

Close closes the Manager and releases resources | 关闭Manager并释放资源

func (*Manager) DeleteSession

func (m *Manager) DeleteSession(loginID string) error

DeleteSession Deletes session | 删除Session

func (*Manager) Disable

func (m *Manager) Disable(loginID string, duration time.Duration) error

Disable Disables an account | 封禁账号

func (*Manager) GenerateNonce

func (m *Manager) GenerateNonce() (string, error)

GenerateNonce Generates a one-time nonce | 生成一次性随机数

func (*Manager) GetConfig

func (m *Manager) GetConfig() *config.Config

GetConfig Gets configuration | 获取配置

func (*Manager) GetDisableTime

func (m *Manager) GetDisableTime(loginID string) (int64, error)

GetDisableTime Gets remaining disable time in seconds | 获取账号剩余封禁时间(秒)

func (*Manager) GetEventManager

func (m *Manager) GetEventManager() *listener.Manager

GetEventManager gets the event manager | 获取事件管理器

func (*Manager) GetLoginID

func (m *Manager) GetLoginID(tokenValue string) (string, error)

GetLoginID Gets login ID from token | 根据Token获取登录ID

func (*Manager) GetLoginIDNotCheck

func (m *Manager) GetLoginIDNotCheck(tokenValue string) (string, error)

GetLoginIDNotCheck Gets login ID without checking token validity | 获取登录ID(不检查Token是否有效)

func (*Manager) GetOAuth2Server

func (m *Manager) GetOAuth2Server() *oauth2.OAuth2Server

GetOAuth2Server Gets OAuth2 server instance | 获取OAuth2服务器实例

func (*Manager) GetPermissions

func (m *Manager) GetPermissions(loginID string) ([]string, error)

GetPermissions Gets permission list | 获取权限列表

func (*Manager) GetRoles

func (m *Manager) GetRoles(loginID string) ([]string, error)

GetRoles Gets role list | 获取角色列表

func (*Manager) GetSession

func (m *Manager) GetSession(loginID string) (*session.Session, error)

GetSession Gets session by login ID | 获取Session

func (*Manager) GetSessionByToken

func (m *Manager) GetSessionByToken(tokenValue string) (*session.Session, error)

GetSessionByToken Gets session by token | 根据Token获取Session

func (*Manager) GetSessionCountByLoginID

func (m *Manager) GetSessionCountByLoginID(loginID string) (int, error)

GetSessionCountByLoginID Gets session count for specified account | 获取指定账号的Session数量

func (*Manager) GetStorage

func (m *Manager) GetStorage() adapter.Storage

GetStorage Gets storage | 获取存储

func (*Manager) GetTokenInfo

func (m *Manager) GetTokenInfo(tokenValue string) (*TokenInfo, error)

GetTokenInfo Gets token information | 获取Token信息

func (*Manager) GetTokenTag

func (m *Manager) GetTokenTag(tokenValue string) (string, error)

GetTokenTag Gets token tag | 获取Token标签

func (*Manager) GetTokenValue

func (m *Manager) GetTokenValue(loginID string, device ...string) (string, error)

GetTokenValue Gets token by login ID | 根据登录ID获取Token

func (*Manager) GetTokenValueListByLoginID

func (m *Manager) GetTokenValueListByLoginID(loginID string) ([]string, error)

GetTokenValueListByLoginID Gets all tokens for specified account | 获取指定账号的所有Token

func (*Manager) HasPermission

func (m *Manager) HasPermission(loginID string, permission string) bool

HasPermission 检查是否有指定权限

func (*Manager) HasPermissionsAnd

func (m *Manager) HasPermissionsAnd(loginID string, permissions []string) bool

HasPermissionsAnd 检查是否拥有所有权限(AND)

func (*Manager) HasPermissionsOr

func (m *Manager) HasPermissionsOr(loginID string, permissions []string) bool

HasPermissionsOr 检查是否拥有任一权限(OR)

func (*Manager) HasRole

func (m *Manager) HasRole(loginID string, role string) bool

HasRole 检查是否有指定角色

func (*Manager) HasRolesAnd

func (m *Manager) HasRolesAnd(loginID string, roles []string) bool

HasRolesAnd 检查是否拥有所有角色(AND)

func (*Manager) HasRolesOr

func (m *Manager) HasRolesOr(loginID string, roles []string) bool

HasRolesOr 检查是否拥有任一角色(OR)

func (*Manager) IsDisable

func (m *Manager) IsDisable(loginID string) bool

IsDisable Checks if account is disabled | 检查账号是否被封禁

func (*Manager) IsLogin

func (m *Manager) IsLogin(tokenValue string) bool

IsLogin Checks if user is logged in | 检查是否登录

func (*Manager) Kickout

func (m *Manager) Kickout(loginID string, device ...string) error

Kickout Kick user offline (public method) | 踢人下线(公开方法)

func (*Manager) Login

func (m *Manager) Login(loginID string, device ...string) (string, error)

Login Performs user login and returns token | 登录,返回Token

func (*Manager) LoginByToken

func (m *Manager) LoginByToken(loginID string, tokenValue string, device ...string) error

LoginByToken Login with specified token (for seamless token refresh) | 使用指定Token登录(用于token无感刷新)

func (*Manager) LoginWithRefreshToken

func (m *Manager) LoginWithRefreshToken(loginID, device string) (*security.RefreshTokenInfo, error)

LoginWithRefreshToken Logs in with refresh token | 使用刷新令牌登录

func (*Manager) Logout

func (m *Manager) Logout(loginID string, device ...string) error

Logout Performs user logout | 登出

func (*Manager) LogoutByToken

func (m *Manager) LogoutByToken(tokenValue string) error

LogoutByToken Logout by token | 根据Token登出

func (*Manager) RefreshAccessToken

func (m *Manager) RefreshAccessToken(refreshToken string) (*security.RefreshTokenInfo, error)

RefreshAccessToken Refreshes access token | 刷新访问令牌

func (*Manager) Register

func (m *Manager) Register(event listener.Event, listener listener.Listener) string

Register registers an event listener | 注册事件监听器

func (*Manager) RegisterFunc

func (m *Manager) RegisterFunc(event listener.Event, fn func(*listener.EventData))

RegisterFunc registers a function as an event listener | 注册函数作为事件监听器

func (*Manager) RegisterWithConfig

func (m *Manager) RegisterWithConfig(event listener.Event, listener listener.Listener, config listener.ListenerConfig) string

RegisterWithConfig registers an event listener with config | 注册带配置的事件监听器

func (*Manager) RevokeRefreshToken

func (m *Manager) RevokeRefreshToken(refreshToken string) error

RevokeRefreshToken Revokes refresh token | 撤销刷新令牌

func (*Manager) SetPermissions

func (m *Manager) SetPermissions(loginID string, permissions []string) error

SetPermissions Sets permissions for user | 设置权限

func (*Manager) SetRoles

func (m *Manager) SetRoles(loginID string, roles []string) error

SetRoles Sets roles for user | 设置角色

func (*Manager) SetTokenTag

func (m *Manager) SetTokenTag(tokenValue, tag string) error

SetTokenTag Sets token tag | 设置Token标签

func (*Manager) TriggerEvent

func (m *Manager) TriggerEvent(data *listener.EventData)

TriggerEvent manually triggers an event | 手动触发事件

func (*Manager) Unregister

func (m *Manager) Unregister(id string) bool

Unregister removes an event listener by ID | 根据ID移除事件监听器

func (*Manager) Untie

func (m *Manager) Untie(loginID string) error

Untie Re-enables a disabled account | 解封账号

func (*Manager) VerifyNonce

func (m *Manager) VerifyNonce(nonce string) bool

VerifyNonce Verifies a nonce | 验证随机数

func (*Manager) WaitEvents

func (m *Manager) WaitEvents()

WaitEvents waits for all async event listeners to complete | 等待所有异步事件监听器完成

type TokenInfo

type TokenInfo struct {
	LoginID    string `json:"loginId"`
	Device     string `json:"device"`
	CreateTime int64  `json:"createTime"`
	ActiveTime int64  `json:"activeTime"` // Last active time | 最后活跃时间
	Tag        string `json:"tag,omitempty"`
}

TokenInfo Token information | Token信息

Jump to

Keyboard shortcuts

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