jwt

package
v0.1.2 Latest Latest
Warning

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

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

Documentation

Index

Constants

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

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 GetTenantIDFromToken added in v0.1.2

func GetTenantIDFromToken(claims map[string]any) string

GetTenantIDFromToken gets the tenant ID from the token

func GetUserIDFromToken added in v0.1.2

func GetUserIDFromToken(claims map[string]any) string

GetUserIDFromToken gets the user ID from the token

func IsAdminFromToken added in v0.1.2

func IsAdminFromToken(claims map[string]any) bool

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

type TokenPayload added in v0.1.2

type TokenPayload struct {
	Roles       []string `json:"roles"`
	Permissions []string `json:"permissions"`
	TenantID    string   `json:"tenant_id"`
	UserID      string   `json:"user_id"`
	IsAdmin     bool     `json:"is_admin"`
}

TokenPayload represents the standard payload structure

Jump to

Keyboard shortcuts

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