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 ¶
ExtractTokenFromHeader extracts JWT token from Authorization header. Supports both "Bearer <token>" and just "<token>" formats.
func GenerateToken ¶
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 ¶
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 ¶
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)
Click to show internal directories.
Click to hide internal directories.