Documentation
¶
Index ¶
- func GenerateRSAKeyPair() (*rsa.PrivateKey, *rsa.PublicKey, error)
- type JWTLocal
- type JWTLocalClaims
- type JWTLocalConfig
- type JWTLocalTokenType
- type JWTPublic
- type JWTPublicClaims
- type JWTPublicConfig
- type JWTPublicTokenType
- type LocalClaims
- type LocalPaseto
- type LocalPasetoConfig
- type LocalTokenType
- type PublicClaims
- type PublicPaseto
- type PublicPasetoConfig
- type PublicTokenType
- type PublicTokens
- type Tokens
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateRSAKeyPair ¶
func GenerateRSAKeyPair() (*rsa.PrivateKey, *rsa.PublicKey, error)
GenerateRSAKeyPair generates a new RSA 2048-bit key pair.
Types ¶
type JWTLocal ¶
type JWTLocal struct {
// contains filtered or unexported fields
}
JWTLocal generates and validates JWT tokens with HMAC signatures for access/refresh.
func NewJWTLocal ¶
func NewJWTLocal(cfg JWTLocalConfig) (*JWTLocal, error)
NewJWTLocal builds a JWTLocal with distinct keys and TTLs for access and refresh tokens. Keys can be any length but should be at least 32 bytes for HS256, 64 bytes for HS512.
func (*JWTLocal) Generate ¶
Generate issues a new pair of access and refresh JWT tokens for the given subject and audience. customClaims is an optional map of additional claims to include in both tokens.
func (*JWTLocal) ValidateAccess ¶
func (j *JWTLocal) ValidateAccess(token string) (JWTLocalClaims, error)
ValidateAccess parses and validates an access token, returning its claims.
func (*JWTLocal) ValidateRefresh ¶
func (j *JWTLocal) ValidateRefresh(token string) (JWTLocalClaims, error)
ValidateRefresh parses and validates a refresh token, returning its claims.
type JWTLocalClaims ¶
type JWTLocalClaims struct {
Subject string
Audience string
Issuer string
ExpiresAt time.Time
IssuedAt time.Time
NotBefore time.Time
TokenType JWTLocalTokenType
CustomClaims map[string]any
}
JWTLocalClaims captures the essential claims we expose to callers.
type JWTLocalConfig ¶
type JWTLocalConfig struct {
Issuer string
AccessKey []byte
RefreshKey []byte
AccessTTL time.Duration
RefreshTTL time.Duration
}
JWTLocalConfig holds configuration for JWT local token generation using HMAC.
type JWTLocalTokenType ¶
type JWTLocalTokenType string
JWTLocalTokenType distinguishes access vs refresh tokens.
const ( JWTAccessToken JWTLocalTokenType = "access" JWTRefreshToken JWTLocalTokenType = "refresh" )
type JWTPublic ¶
type JWTPublic struct {
// contains filtered or unexported fields
}
JWTPublic generates and validates JWT tokens with RSA signatures for access/refresh.
func NewJWTPublic ¶
func NewJWTPublic(cfg JWTPublicConfig) (*JWTPublic, error)
NewJWTPublic builds a JWTPublic with distinct RSA key pairs for access and refresh tokens.
func (*JWTPublic) Generate ¶
Generate issues a new pair of access and refresh JWT tokens for the given subject and audience. customClaims is an optional map of additional claims to include in both tokens.
func (*JWTPublic) ValidateAccess ¶
func (j *JWTPublic) ValidateAccess(token string) (JWTPublicClaims, error)
ValidateAccess parses and validates an access token, returning its claims.
func (*JWTPublic) ValidateRefresh ¶
func (j *JWTPublic) ValidateRefresh(token string) (JWTPublicClaims, error)
ValidateRefresh parses and validates a refresh token, returning its claims.
type JWTPublicClaims ¶
type JWTPublicClaims struct {
Subject string
Audience string
Issuer string
ExpiresAt time.Time
IssuedAt time.Time
NotBefore time.Time
TokenType JWTPublicTokenType
CustomClaims map[string]any
}
JWTPublicClaims captures the essential claims we expose to callers.
type JWTPublicConfig ¶
type JWTPublicConfig struct {
Issuer string
AccessPrivateKey *rsa.PrivateKey
AccessPublicKey *rsa.PublicKey
RefreshPrivateKey *rsa.PrivateKey
RefreshPublicKey *rsa.PublicKey
AccessTTL time.Duration
RefreshTTL time.Duration
}
JWTPublicConfig holds configuration for JWT public (asymmetric) token generation using RSA.
type JWTPublicTokenType ¶
type JWTPublicTokenType string
JWTPublicTokenType distinguishes access vs refresh tokens.
const ( JWTPublicAccessToken JWTPublicTokenType = "access" JWTPublicRefreshToken JWTPublicTokenType = "refresh" )
type LocalClaims ¶
type LocalClaims struct {
Subject string
Audience string
Issuer string
JTI string
ExpiresAt time.Time
IssuedAt time.Time
NotBefore time.Time
TokenType LocalTokenType
CustomClaims map[string]any
}
LocalClaims captures the essential claims we expose to callers.
type LocalPaseto ¶
type LocalPaseto struct {
// contains filtered or unexported fields
}
LocalPaseto generates and validates PASETO v4 local tokens for access/refresh.
func NewLocalPaseto ¶
func NewLocalPaseto(cfg LocalPasetoConfig) (*LocalPaseto, error)
func (*LocalPaseto) Generate ¶
func (p *LocalPaseto) Generate(subject, audience string, customClaims map[string]any) (Tokens, error)
Generate issues a new pair of access and refresh tokens for the given subject and audience. customClaims is an optional map of additional claims to include in both tokens.
func (*LocalPaseto) ValidateAccess ¶
func (p *LocalPaseto) ValidateAccess(token string) (LocalClaims, error)
ValidateAccess parses and validates an access token, returning its claims.
func (*LocalPaseto) ValidateRefresh ¶
func (p *LocalPaseto) ValidateRefresh(token string) (LocalClaims, error)
ValidateRefresh parses and validates a refresh token, returning its claims.
type LocalPasetoConfig ¶
type LocalPasetoConfig struct {
Issuer string
AccessKey []byte
RefreshKey []byte
AccessTTL time.Duration
RefreshTTL time.Duration
}
LocalPasetoConfig holds configuration for PASETO v4 local token generation.
type LocalTokenType ¶
type LocalTokenType string
LocalTokenType distinguishes access vs refresh tokens.
const ( AccessToken LocalTokenType = "access" RefreshToken LocalTokenType = "refresh" )
type PublicClaims ¶
type PublicClaims struct {
Subject string
Audience string
Issuer string
JTI string
ExpiresAt time.Time
IssuedAt time.Time
NotBefore time.Time
TokenType PublicTokenType
CustomClaims map[string]any
}
PublicClaims captures the essential claims for public PASETO tokens.
type PublicPaseto ¶
type PublicPaseto struct {
// contains filtered or unexported fields
}
PublicPaseto generates and validates PASETO v4 public tokens for access/refresh.
func NewPublicPaseto ¶
func NewPublicPaseto(cfg PublicPasetoConfig) (*PublicPaseto, error)
func (*PublicPaseto) Generate ¶
func (p *PublicPaseto) Generate(subject, audience string, customClaims map[string]any) (PublicTokens, error)
Generate issues a new pair of access and refresh public tokens for the given subject and audience. customClaims is an optional map of additional claims to include in both tokens.
func (*PublicPaseto) ValidateAccess ¶
func (p *PublicPaseto) ValidateAccess(token string) (PublicClaims, error)
ValidateAccess parses and validates an access public token, returning its claims.
func (*PublicPaseto) ValidateRefresh ¶
func (p *PublicPaseto) ValidateRefresh(token string) (PublicClaims, error)
ValidateRefresh parses and validates a refresh public token, returning its claims.
type PublicPasetoConfig ¶
type PublicPasetoConfig struct {
Issuer string
AccessPrivateKey []byte
AccessPublicKey []byte
RefreshPrivateKey []byte
RefreshPublicKey []byte
AccessTTL time.Duration
RefreshTTL time.Duration
}
PublicPasetoConfig holds configuration for PASETO v4 public token generation.
type PublicTokenType ¶
type PublicTokenType string
PublicTokenType distinguishes access vs refresh tokens for public PASETO.
const ( PublicAccessToken PublicTokenType = "access" PublicRefreshToken PublicTokenType = "refresh" )
type PublicTokens ¶
PublicTokens bundles generated access and refresh public tokens.