Documentation
¶
Index ¶
- Constants
- Variables
- type NonceManager
- type RefreshTokenInfo
- type RefreshTokenManager
- func (rtm *RefreshTokenManager) GenerateTokenPair(loginID, device string, accessTokenOverride ...string) (*RefreshTokenInfo, error)
- func (rtm *RefreshTokenManager) GetRefreshTokenInfo(refreshToken string) (*RefreshTokenInfo, error)
- func (rtm *RefreshTokenManager) IsValid(refreshToken string) bool
- func (rtm *RefreshTokenManager) RefreshAccessToken(refreshToken string) (*RefreshTokenInfo, error)
- func (rtm *RefreshTokenManager) RevokeRefreshToken(refreshToken string) error
Constants ¶
const ( DefaultNonceTTL = 5 * time.Minute // Default nonce expiration | 默认nonce过期时间 NonceLength = 32 // Nonce byte length | Nonce字节长度 NonceKeySuffix = "nonce:" // Key suffix after prefix | 前缀后的键后缀 )
Constants for nonce | Nonce常量
const ( DefaultRefreshTTL = 30 * 24 * time.Hour // 30 days | 30天 DefaultAccessTTL = 2 * time.Hour // 2 hours | 2小时 RefreshTokenLength = 32 // Refresh token byte length | 刷新令牌字节长度 RefreshKeySuffix = "refresh:" // Key suffix after prefix | 前缀后的键后缀 )
Constants for refresh token | 刷新令牌常量
Variables ¶
var ( ErrInvalidRefreshToken = fmt.Errorf("invalid refresh token") ErrRefreshTokenExpired = fmt.Errorf("refresh token expired") ErrInvalidRefreshData = fmt.Errorf("invalid refresh token data") )
Error variables | 错误变量
var (
ErrInvalidNonce = fmt.Errorf("invalid or expired nonce")
)
Error variables | 错误变量
Functions ¶
This section is empty.
Types ¶
type NonceManager ¶
type NonceManager struct {
// contains filtered or unexported fields
}
NonceManager Nonce manager for anti-replay attacks | Nonce管理器,用于防重放攻击
func NewNonceManager ¶
NewNonceManager Creates a new nonce manager | 创建新的Nonce管理器 prefix: key prefix (e.g., "satoken:" or "" for Java compatibility) | 键前缀(如:"satoken:" 或 "" 兼容Java) ttl: time to live, default 5 minutes | 过期时间,默认5分钟
func (*NonceManager) Generate ¶
func (nm *NonceManager) Generate() (string, error)
Generate Generates a new nonce and stores it | 生成新的nonce并存储 Returns 64-char hex string | 返回64字符的十六进制字符串
func (*NonceManager) IsValid ¶
func (nm *NonceManager) IsValid(nonce string) bool
IsValid Checks if nonce is valid without consuming it | 检查nonce是否有效(不消费)
func (*NonceManager) Verify ¶
func (nm *NonceManager) Verify(nonce string) bool
Verify Verifies nonce and consumes it (one-time use) | 验证nonce并消费它(一次性使用) Returns false if nonce doesn't exist or already used | 如果nonce不存在或已使用则返回false
func (*NonceManager) VerifyAndConsume ¶
func (nm *NonceManager) VerifyAndConsume(nonce string) error
VerifyAndConsume Verifies and consumes nonce, returns error if invalid | 验证并消费nonce,无效时返回错误
type RefreshTokenInfo ¶
type RefreshTokenInfo struct {
RefreshToken string `json:"refreshToken"` // Refresh token (long-lived) | 刷新令牌(长期有效)
AccessToken string `json:"accessToken"` // Access token (short-lived) | 访问令牌(短期有效)
LoginID string `json:"loginID"` // User login ID | 用户登录ID
Device string `json:"device"` // Device type | 设备类型
CreateTime int64 `json:"createTime"` // Creation timestamp | 创建时间戳
ExpireTime int64 `json:"expireTime"` // Expiration timestamp | 过期时间戳
}
RefreshTokenInfo refresh token information | 刷新令牌信息
func (*RefreshTokenInfo) MarshalBinary ¶
func (r *RefreshTokenInfo) MarshalBinary() ([]byte, error)
MarshalBinary implements encoding.BinaryMarshaler for Redis storage | 实现encoding.BinaryMarshaler接口用于Redis存储
func (*RefreshTokenInfo) UnmarshalBinary ¶
func (r *RefreshTokenInfo) UnmarshalBinary(data []byte) error
UnmarshalBinary implements encoding.BinaryUnmarshaler for Redis storage | 实现encoding.BinaryUnmarshaler接口用于Redis存储
type RefreshTokenManager ¶
type RefreshTokenManager struct {
// contains filtered or unexported fields
}
RefreshTokenManager Refresh token manager | 刷新令牌管理器
func NewRefreshTokenManager ¶
func NewRefreshTokenManager(storage adapter.Storage, prefix, keyPrefix string, cfg *config.Config) *RefreshTokenManager
NewRefreshTokenManager Creates a new refresh token manager | 创建新的刷新令牌管理器 prefix: key prefix (e.g., "satoken:" or "" for Java compatibility) | 键前缀(如:"satoken:" 或 "" 兼容Java) cfg: configuration, uses Timeout for access token TTL | 配置,使用Timeout作为访问令牌有效期
func (*RefreshTokenManager) GenerateTokenPair ¶
func (rtm *RefreshTokenManager) GenerateTokenPair(loginID, device string, accessTokenOverride ...string) (*RefreshTokenInfo, error)
GenerateTokenPair Generates access token and refresh token pair | 生成访问令牌和刷新令牌对
func (*RefreshTokenManager) GetRefreshTokenInfo ¶
func (rtm *RefreshTokenManager) GetRefreshTokenInfo(refreshToken string) (*RefreshTokenInfo, error)
GetRefreshTokenInfo Gets refresh token information | 获取刷新令牌信息
func (*RefreshTokenManager) IsValid ¶
func (rtm *RefreshTokenManager) IsValid(refreshToken string) bool
IsValid Checks if refresh token is valid | 检查刷新令牌是否有效
func (*RefreshTokenManager) RefreshAccessToken ¶
func (rtm *RefreshTokenManager) RefreshAccessToken(refreshToken string) (*RefreshTokenInfo, error)
RefreshAccessToken Generates new access token using refresh token | 使用刷新令牌生成新的访问令牌
func (*RefreshTokenManager) RevokeRefreshToken ¶
func (rtm *RefreshTokenManager) RevokeRefreshToken(refreshToken string) error
RevokeRefreshToken Revokes a refresh token | 撤销刷新令牌