Documentation
¶
Index ¶
- Constants
- func GetPermissionsFromToken(claims map[string]any) []string
- func GetRolesFromToken(claims map[string]any) []string
- func GetTenantIDFromToken(claims map[string]any) string
- func GetUserIDFromToken(claims map[string]any) string
- func IsAdminFromToken(claims map[string]any) bool
- type Token
- type TokenError
- type TokenManager
- func (jtm *TokenManager) DecodeToken(tokenString string) (map[string]any, error)
- func (jtm *TokenManager) GenerateAccessToken(jti string, payload map[string]any, subject ...string) (string, error)
- func (jtm *TokenManager) GenerateAccessTokenWithExpiry(jti string, payload map[string]any, expiry time.Duration, subject ...string) (string, error)
- func (jtm *TokenManager) GenerateRefreshToken(jti string, payload map[string]any, subject ...string) (string, error)
- func (jtm *TokenManager) GenerateRefreshTokenWithExpiry(jti string, payload map[string]any, expiry time.Duration, subject ...string) (string, error)
- func (jtm *TokenManager) GenerateRegisterToken(jti string, payload map[string]any, subject ...string) (string, error)
- func (jtm *TokenManager) GetTokenExpiryTime(tokenString string) (time.Time, error)
- func (jtm *TokenManager) IsTokenExpired(tokenString string) (bool, error)
- func (jtm *TokenManager) ValidateToken(tokenString string) (*jwtstd.Token, error)
- type TokenPayload
Constants ¶
const ( DefaultAccessTokenExpire = time.Hour * 24 DefaultRegisterTokenExpire = time.Minute * 60 DefaultRefreshTokenExpire = time.Hour * 24 * 7 ErrNeedTokenProvider = TokenError("cannot sign token without token provider") ErrInvalidToken = TokenError("invalid token") ErrTokenParsing = TokenError("token parsing error") )
Variables ¶
This section is empty.
Functions ¶
func GetPermissionsFromToken ¶ added in v0.1.2
GetPermissionsFromToken extracts permissions from token claims
func GetRolesFromToken ¶ added in v0.1.2
GetRolesFromToken extracts roles from token claims
func GetTenantIDFromToken ¶ added in v0.1.2
GetTenantIDFromToken gets the tenant ID from the token
func GetUserIDFromToken ¶ added in v0.1.2
GetUserIDFromToken gets the user ID from the token
func IsAdminFromToken ¶ added in v0.1.2
IsAdminFromToken checks if the token indicates an admin user
Types ¶
type Token ¶
type Token struct {
JTI string `json:"jti"`
Payload map[string]any `json:"payload"`
Subject string `json:"sub"`
Expire int64 `json:"exp"`
}
Token represents the token body
type TokenError ¶
type TokenError string
TokenError represents JWT token related errors
func (TokenError) Error ¶
func (e TokenError) Error() string
type TokenManager ¶ added in v0.1.2
type TokenManager struct {
// contains filtered or unexported fields
}
TokenManager handles JWT token operations
func NewTokenManager ¶ added in v0.1.2
func NewTokenManager(key string) *TokenManager
NewTokenManager creates a new TokenManager instance
func (*TokenManager) DecodeToken ¶ added in v0.1.2
func (jtm *TokenManager) DecodeToken(tokenString string) (map[string]any, error)
DecodeToken decodes a JWT token into its claims
func (*TokenManager) GenerateAccessToken ¶ added in v0.1.2
func (jtm *TokenManager) GenerateAccessToken(jti string, payload map[string]any, subject ...string) (string, error)
GenerateAccessToken generates an access token with a default expiration of 24 hours
func (*TokenManager) GenerateAccessTokenWithExpiry ¶ added in v0.1.2
func (jtm *TokenManager) GenerateAccessTokenWithExpiry(jti string, payload map[string]any, expiry time.Duration, subject ...string) (string, error)
GenerateAccessTokenWithExpiry generates an access token with a custom expiration duration.
func (*TokenManager) GenerateRefreshToken ¶ added in v0.1.2
func (jtm *TokenManager) GenerateRefreshToken(jti string, payload map[string]any, subject ...string) (string, error)
GenerateRefreshToken generates a refresh token with a default expiration of 7 days
func (*TokenManager) GenerateRefreshTokenWithExpiry ¶ added in v0.1.2
func (jtm *TokenManager) GenerateRefreshTokenWithExpiry(jti string, payload map[string]any, expiry time.Duration, subject ...string) (string, error)
GenerateRefreshTokenWithExpiry generates a refresh token with a custom expiration duration.
func (*TokenManager) GenerateRegisterToken ¶ added in v0.1.2
func (jtm *TokenManager) GenerateRegisterToken(jti string, payload map[string]any, subject ...string) (string, error)
GenerateRegisterToken generates a register token with a default expiration of 60 minutes
func (*TokenManager) GetTokenExpiryTime ¶ added in v0.1.2
func (jtm *TokenManager) GetTokenExpiryTime(tokenString string) (time.Time, error)
GetTokenExpiryTime extracts the expiration time from a token
func (*TokenManager) IsTokenExpired ¶ added in v0.1.2
func (jtm *TokenManager) IsTokenExpired(tokenString string) (bool, error)
IsTokenExpired checks if a token is expired
func (*TokenManager) ValidateToken ¶ added in v0.1.2
func (jtm *TokenManager) ValidateToken(tokenString string) (*jwtstd.Token, error)
ValidateToken validates a JWT token