jwt

package module
v0.1.6 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2021 License: MIT Imports: 12 Imported by: 1

README

JSON Web Token (JWT) Package

The official documentation of the jwt package will be here.

Documentation

Index

Constants

View Source
const (
	ValidationErrorMalformed        = "token is malformed"
	ValidationErrorHeadersMalformed = "token headers are malformed"
	ValidationErrorClaimsMalformed  = "token claims are malformed"
	ValidationErrorUnverifiable     = "the token could not be verified due to problems with the generation of the test sample"
	ValidationErrorSignatureInvalid = "signature validation failed"

	ValidationErrorHeadersContentType = "header 'cty' validation failed"
	ValidationErrorHeadersKeyID       = "header 'kid' validation failed"
	ValidationErrorHeadersCritical    = "header 'crit' validation failed"

	ValidationErrorClaimsIssuer      = "claim 'iss' validation failed"
	ValidationErrorClaimsSubject     = "claim 'sub' validation failed"
	ValidationErrorClaimsAudience    = "claim 'aud' validation failed"
	ValidationErrorClaimsExpired     = "claim 'exp' validation failed"
	ValidationErrorClaimsNotValidYet = "claim 'nbf' validation failed"
	ValidationErrorClaimsIssuedAt    = "claim 'iat' validation failed"
	ValidationErrorClaimsJwtId       = "claim 'jti' validation failed"
	ValidationErrorClaimsSessionID   = "claim 'sessionID' validation failed"
	ValidationErrorClaimsData        = "claim 'data' validation failed"
)
View Source
const (
	TokenType                    = "JWT"
	TokenUseAccess               = "Access"
	TokenUseRefresh              = "Refresh"
	TokenSignatureAlgorithmHS256 = "HS256"
	TokenSignatureAlgorithmHS512 = "HS512"
)

Variables

This section is empty.

Functions

func NewToken added in v0.1.3

func NewToken(
	config Config) (*jwt, error)

Types

type Claims added in v0.1.1

type Claims struct {
	Issuer         string `json:"iss,omitempty"`
	Subject        string `json:"sub,omitempty"`
	Audience       string `json:"aud,omitempty"`
	ExpirationTime int64  `json:"exp,omitempty"`
	NotBefore      int64  `json:"nbf,omitempty"`
	IssuedAt       int64  `json:"iat,omitempty"`
	JwtID          string `json:"jti,omitempty"`
	Data           []byte `json:"data,omitempty"` // It is a custom field for any data (for example, encrypted data).
}

type Config

type Config struct {
	Headers          Headers
	Claims           Claims
	ParseOptions     ParseOptions
	TokenLifetimeSec int
	Key              string
}

type Headers added in v0.1.1

type Headers struct {
	Type               string `json:"typ,omitempty"`
	SignatureAlgorithm string `json:"alg,omitempty"`
	ContentType        string `json:"cty,omitempty"`
	KeyID              string `json:"kid,omitempty"`
	Critical           string `json:"crit,omitempty"`
}

type Jwt

type Jwt interface {
	Create(claims Claims, headers ...Headers) (string, error)
	Parse(jwt string, parseOptions ...ParseOptions) (Token, string, error)

	GetHeaders() Headers
	GetClaims() Claims
	GetParseOptions() ParseOptions
}

type MockDescription

type MockDescription struct {
	Props    struct{}
	Expected struct {
		Error error
	}
}
var MockData MockDescription

func (*MockDescription) Create

func (s *MockDescription) Create(_ Claims, _ ...Headers) (string, error)

func (*MockDescription) GetClaims added in v0.1.3

func (s *MockDescription) GetClaims() Claims

func (*MockDescription) GetHeaders added in v0.1.3

func (s *MockDescription) GetHeaders() Headers

func (*MockDescription) GetParseOptions added in v0.1.3

func (s *MockDescription) GetParseOptions() ParseOptions

func (*MockDescription) Parse added in v0.1.3

func (s *MockDescription) Parse(_ string, _ ...ParseOptions) (Token, string, error)

type ParseOptions added in v0.1.1

type ParseOptions struct {
	RequiredHeaderContentType             bool
	RequiredHeaderKeyID                   bool
	RequiredHeaderX509CertificateChain    bool
	RequiredHeaderX509CertificateChainURL bool
	RequiredHeaderCritical                bool
	RequiredClaimIssuer                   bool
	RequiredClaimSubject                  bool
	RequiredClaimAudience                 bool
	RequiredClaimJwtID                    bool
	RequiredClaimData                     bool
	SkipClaimsValidation                  bool
	SkipSignatureValidation               bool
}

type Token

type Token struct {
	Headers   Headers
	Claims    Claims
	Signature string
}

Jump to

Keyboard shortcuts

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