Documentation
¶
Index ¶
- Constants
- func GetEmailFromToken(claims map[string]any) string
- func GetExpirationFromToken(claims map[string]any) time.Time
- func GetIssuedAtFromToken(claims map[string]any) time.Time
- func GetPermissionsFromToken(claims map[string]any) []string
- func GetRolesFromToken(claims map[string]any) []string
- func GetSpaceIDFromToken(claims map[string]any) string
- func GetSpaceIDsFromToken(claims map[string]any) []string
- func GetSubjectFromToken(claims map[string]any) string
- func GetTokenIDFromToken(claims map[string]any) string
- func GetUserIDFromToken(claims map[string]any) string
- func GetUserStatusFromToken(claims map[string]any) int
- func GetUsernameFromToken(claims map[string]any) string
- func HasAnyRole(claims map[string]any, roles ...string) bool
- func HasPermission(claims map[string]any, permission string) bool
- func HasRole(claims map[string]any, role string) bool
- func IsAccessToken(claims map[string]any) bool
- func IsAdminFromToken(claims map[string]any) bool
- func IsAdminRole(claims map[string]any) bool
- func IsCertifiedFromToken(claims map[string]any) bool
- func IsRefreshToken(claims map[string]any) bool
- func IsRegisterToken(claims map[string]any) bool
- func IsTokenStale(claims map[string]any, staleDuration time.Duration) bool
- func ValidateTokenType(claims map[string]any, expectedType string) error
- func ValidateTokenUser(claims map[string]any, currentUser *TokenUser) error
- type TokenError
- type TokenManager
- func (tm *TokenManager) DecodeToken(tokenString string) (map[string]any, error)
- func (tm *TokenManager) GenerateAccessToken(jti string, payload map[string]any) (string, error)
- func (tm *TokenManager) GenerateAccessTokenWithExpiry(jti string, payload map[string]any, expiry time.Duration) (string, error)
- func (tm *TokenManager) GenerateRefreshToken(jti string, payload map[string]any) (string, error)
- func (tm *TokenManager) GenerateRefreshTokenWithExpiry(jti string, payload map[string]any, expiry time.Duration) (string, error)
- func (tm *TokenManager) GenerateRegisterToken(jti string, payload map[string]any, subject string) (string, error)
- func (tm *TokenManager) GetTokenExpiry(tokenString string) (time.Time, error)
- func (tm *TokenManager) IsTokenExpired(tokenString string) bool
- func (tm *TokenManager) RefreshTokenIfNeeded(tokenString string, refreshThreshold time.Duration) (string, bool, error)
- func (tm *TokenManager) ValidateToken(tokenString string) (*jwtstd.Token, error)
- type TokenUser
Constants ¶
const ( DefaultAccessTokenExpire = 2 * time.Hour // Shorter for security DefaultRefreshTokenExpire = 7 * 24 * time.Hour DefaultRegisterTokenExpire = time.Hour )
Token expiration constants
const ( ErrNeedTokenProvider = TokenError("token provider required") ErrInvalidToken = TokenError("invalid token") ErrTokenExpired = TokenError("token expired") ErrTokenParsing = TokenError("token parsing error") )
Error constants
Variables ¶
This section is empty.
Functions ¶
func GetEmailFromToken ¶ added in v0.1.4
GetEmailFromToken extracts email from token claims
func GetExpirationFromToken ¶ added in v0.1.4
GetExpirationFromToken extracts expiration time from token claims
func GetIssuedAtFromToken ¶ added in v0.1.4
GetIssuedAtFromToken extracts issued at time from token claims
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 GetSpaceIDFromToken ¶ added in v0.1.5
GetSpaceIDFromToken extracts space ID from token claims
func GetSpaceIDsFromToken ¶ added in v0.1.5
GetSpaceIDsFromToken extracts space IDs from token claims
func GetSubjectFromToken ¶ added in v0.1.4
GetSubjectFromToken extracts subject (sub) from token claims
func GetTokenIDFromToken ¶ added in v0.1.4
GetTokenIDFromToken extracts JWT ID (jti) from token claims
func GetUserIDFromToken ¶ added in v0.1.2
GetUserIDFromToken extracts user ID from token claims
func GetUserStatusFromToken ¶ added in v0.1.4
GetUserStatusFromToken extracts user status from token claims
func GetUsernameFromToken ¶ added in v0.1.4
GetUsernameFromToken extracts username from token claims
func HasAnyRole ¶ added in v0.1.4
HasAnyRole checks if user has any of the specified roles
func HasPermission ¶ added in v0.1.4
HasPermission checks if user has specific permission in token
func IsAccessToken ¶ added in v0.1.4
IsAccessToken checks if token is an access token
func IsAdminFromToken ¶ added in v0.1.2
IsAdminFromToken checks if user is admin from token claims
func IsAdminRole ¶ added in v0.1.4
IsAdminRole checks if user has admin role
func IsCertifiedFromToken ¶ added in v0.1.4
IsCertifiedFromToken checks if user is certified from token claims
func IsRefreshToken ¶ added in v0.1.4
IsRefreshToken checks if token is a refresh token
func IsRegisterToken ¶ added in v0.1.4
IsRegisterToken checks if token is a register token
func IsTokenStale ¶ added in v0.1.4
IsTokenStale checks if token is older than specified duration
func ValidateTokenType ¶ added in v0.1.4
ValidateTokenType ensures token is of expected type
Types ¶
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(secret string) *TokenManager
NewTokenManager creates a new TokenManager instance
func (*TokenManager) DecodeToken ¶ added in v0.1.2
func (tm *TokenManager) DecodeToken(tokenString string) (map[string]any, error)
DecodeToken decodes a JWT token and returns its claims
func (*TokenManager) GenerateAccessToken ¶ added in v0.1.2
GenerateAccessToken generates an access token
func (*TokenManager) GenerateAccessTokenWithExpiry ¶ added in v0.1.2
func (tm *TokenManager) GenerateAccessTokenWithExpiry(jti string, payload map[string]any, expiry time.Duration) (string, error)
GenerateAccessTokenWithExpiry generates an access token with custom expiry
func (*TokenManager) GenerateRefreshToken ¶ added in v0.1.2
GenerateRefreshToken generates a refresh token
func (*TokenManager) GenerateRefreshTokenWithExpiry ¶ added in v0.1.2
func (tm *TokenManager) GenerateRefreshTokenWithExpiry(jti string, payload map[string]any, expiry time.Duration) (string, error)
GenerateRefreshTokenWithExpiry generates a refresh token with custom expiry
func (*TokenManager) GenerateRegisterToken ¶ added in v0.1.2
func (tm *TokenManager) GenerateRegisterToken(jti string, payload map[string]any, subject string) (string, error)
GenerateRegisterToken generates a register token
func (*TokenManager) GetTokenExpiry ¶ added in v0.1.4
func (tm *TokenManager) GetTokenExpiry(tokenString string) (time.Time, error)
GetTokenExpiry returns the expiry time of a token
func (*TokenManager) IsTokenExpired ¶ added in v0.1.2
func (tm *TokenManager) IsTokenExpired(tokenString string) bool
IsTokenExpired checks if a token is expired
func (*TokenManager) RefreshTokenIfNeeded ¶ added in v0.1.4
func (tm *TokenManager) RefreshTokenIfNeeded(tokenString string, refreshThreshold time.Duration) (string, bool, error)
RefreshTokenIfNeeded refreshes token if it's close to expiry
func (*TokenManager) ValidateToken ¶ added in v0.1.2
func (tm *TokenManager) ValidateToken(tokenString string) (*jwtstd.Token, error)
ValidateToken validates a JWT token and returns the parsed token