jwt

package
v0.1.6 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2025 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultAccessTokenExpire   = 2 * time.Hour // Shorter for security
	DefaultRefreshTokenExpire  = 7 * 24 * time.Hour
	DefaultRegisterTokenExpire = time.Hour
)

Token expiration constants

View Source
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

func GetEmailFromToken(claims map[string]any) string

GetEmailFromToken extracts email from token claims

func GetExpirationFromToken added in v0.1.4

func GetExpirationFromToken(claims map[string]any) time.Time

GetExpirationFromToken extracts expiration time from token claims

func GetIssuedAtFromToken added in v0.1.4

func GetIssuedAtFromToken(claims map[string]any) time.Time

GetIssuedAtFromToken extracts issued at time from token claims

func GetPermissionsFromToken added in v0.1.2

func GetPermissionsFromToken(claims map[string]any) []string

GetPermissionsFromToken extracts permissions from token claims

func GetRolesFromToken added in v0.1.2

func GetRolesFromToken(claims map[string]any) []string

GetRolesFromToken extracts roles from token claims

func GetSpaceIDFromToken added in v0.1.5

func GetSpaceIDFromToken(claims map[string]any) string

GetSpaceIDFromToken extracts space ID from token claims

func GetSpaceIDsFromToken added in v0.1.5

func GetSpaceIDsFromToken(claims map[string]any) []string

GetSpaceIDsFromToken extracts space IDs from token claims

func GetSubjectFromToken added in v0.1.4

func GetSubjectFromToken(claims map[string]any) string

GetSubjectFromToken extracts subject (sub) from token claims

func GetTokenIDFromToken added in v0.1.4

func GetTokenIDFromToken(claims map[string]any) string

GetTokenIDFromToken extracts JWT ID (jti) from token claims

func GetUserIDFromToken added in v0.1.2

func GetUserIDFromToken(claims map[string]any) string

GetUserIDFromToken extracts user ID from token claims

func GetUserStatusFromToken added in v0.1.4

func GetUserStatusFromToken(claims map[string]any) int

GetUserStatusFromToken extracts user status from token claims

func GetUsernameFromToken added in v0.1.4

func GetUsernameFromToken(claims map[string]any) string

GetUsernameFromToken extracts username from token claims

func HasAnyRole added in v0.1.4

func HasAnyRole(claims map[string]any, roles ...string) bool

HasAnyRole checks if user has any of the specified roles

func HasPermission added in v0.1.4

func HasPermission(claims map[string]any, permission string) bool

HasPermission checks if user has specific permission in token

func HasRole added in v0.1.4

func HasRole(claims map[string]any, role string) bool

HasRole checks if user has specific role in token

func IsAccessToken added in v0.1.4

func IsAccessToken(claims map[string]any) bool

IsAccessToken checks if token is an access token

func IsAdminFromToken added in v0.1.2

func IsAdminFromToken(claims map[string]any) bool

IsAdminFromToken checks if user is admin from token claims

func IsAdminRole added in v0.1.4

func IsAdminRole(claims map[string]any) bool

IsAdminRole checks if user has admin role

func IsCertifiedFromToken added in v0.1.4

func IsCertifiedFromToken(claims map[string]any) bool

IsCertifiedFromToken checks if user is certified from token claims

func IsRefreshToken added in v0.1.4

func IsRefreshToken(claims map[string]any) bool

IsRefreshToken checks if token is a refresh token

func IsRegisterToken added in v0.1.4

func IsRegisterToken(claims map[string]any) bool

IsRegisterToken checks if token is a register token

func IsTokenStale added in v0.1.4

func IsTokenStale(claims map[string]any, staleDuration time.Duration) bool

IsTokenStale checks if token is older than specified duration

func ValidateTokenType added in v0.1.4

func ValidateTokenType(claims map[string]any, expectedType string) error

ValidateTokenType ensures token is of expected type

func ValidateTokenUser added in v0.1.4

func ValidateTokenUser(claims map[string]any, currentUser *TokenUser) error

ValidateTokenUser validates user info in token against current user data

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

func (tm *TokenManager) GenerateAccessToken(jti string, payload map[string]any) (string, error)

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

func (tm *TokenManager) GenerateRefreshToken(jti string, payload map[string]any) (string, error)

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

type TokenUser added in v0.1.4

type TokenUser struct {
	ID       string
	Username string
	Email    string
	Status   int
}

TokenUser represents minimal user info for validation

Jump to

Keyboard shortcuts

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