auth

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInvalidToken is returned when token validation fails
	ErrInvalidToken = errors.New("invalid token")

	// ErrTokenExpired is returned when token has expired
	ErrTokenExpired = errors.New("token has expired")
)

Functions

func ExtractTokenFromHeader

func ExtractTokenFromHeader(authHeader string) (string, error)

ExtractTokenFromHeader extracts JWT token from Authorization header. Supports both "Bearer <token>" and just "<token>" formats.

func GenerateToken

func GenerateToken(claims Claims, secret string, ttl time.Duration) (string, error)

GenerateToken creates a new JWT token with the given claims.

claims: Custom data to store in the token secret: Secret key for signing the token ttl: Time to live (e.g., 24*time.Hour)

Example:

token, err := auth.GenerateToken(map[string]interface{}{
    "userID": "123",
    "email": "user@example.com",
}, "my-secret-key", 24*time.Hour)

func RefreshToken

func RefreshToken(token, secret string, ttl time.Duration) (string, error)

RefreshToken creates a new token with the same claims but extended expiration. The original token must still be valid (not expired) to be refreshed. This prevents indefinite token refresh after expiration.

Example:

newToken, err := auth.RefreshToken(oldToken, secret, 24*time.Hour)

Types

type Claims

type Claims map[string]interface{}

Claims represents JWT claims (payload)

func ValidateToken

func ValidateToken(token, secret string) (Claims, error)

ValidateToken validates a JWT token and returns its claims.

Example:

claims, err := auth.ValidateToken(token, "my-secret-key")
if err != nil {
    // Invalid or expired token
}
userID := claims["userID"].(string)

Jump to

Keyboard shortcuts

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