Documentation
¶
Index ¶
- Variables
- type Claims
- type Config
- type Service
- func (s *Service) GenerateAccessToken(userID, username, email, role string) (string, error)
- func (s *Service) GenerateRefreshToken(userID string) (string, error)
- func (s *Service) GetExpiryTime(tokenString string) (time.Time, error)
- func (s *Service) IsExpired(tokenString string) bool
- func (s *Service) ValidateToken(tokenString string) (*Claims, error)
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrInvalidToken is returned when token validation fails ErrInvalidToken = errors.New("invalid token") // ErrExpiredToken is returned when token has expired ErrExpiredToken = errors.New("token has expired") // ErrInvalidClaims is returned when token claims are invalid ErrInvalidClaims = errors.New("invalid token claims") // ErrWeakSecretKey is returned when the secret key is too short ErrWeakSecretKey = errors.New("secret key must be at least 32 bytes") )
Functions ¶
This section is empty.
Types ¶
type Claims ¶
type Claims struct {
UserID string `json:"user_id"`
Username string `json:"username"`
Email string `json:"email"`
Role string `json:"role"`
jwt.RegisteredClaims
}
Claims represents JWT claims for authentication
type Config ¶
type Config struct {
// Secret key for signing tokens
SecretKey []byte
// Issuer of the token
Issuer string
// Access token expiration duration
AccessTokenExpiry time.Duration
// Refresh token expiration duration
RefreshTokenExpiry time.Duration
}
Config represents JWT configuration
func DefaultConfig ¶
DefaultConfig returns a Config with sensible defaults. The secretKey must be at least 32 bytes long.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service provides JWT token operations
func (*Service) GenerateAccessToken ¶
GenerateAccessToken generates a new access token
func (*Service) GenerateRefreshToken ¶
GenerateRefreshToken generates a new refresh token
func (*Service) GetExpiryTime ¶
GetExpiryTime returns the expiry time from a token
Click to show internal directories.
Click to hide internal directories.