jwt

package module
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jun 4, 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"
	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 NewJWT added in v0.1.1

func NewJWT(
	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"`
}

type Config

type Config struct {
	Headers          Headers
	Claims           Claims
	ParseOptions     ParseOptions
	TokenLifetimeSec int64
	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(_ string, _ []byte, _ string, _ ...int64) (string, error)

func (*MockDescription) Validate

func (s *MockDescription) Validate(_ string) (Token, error)

type ParseOptions added in v0.1.1

type ParseOptions struct {
	Claims struct {
		RequiredIssuer          bool
		RequiredSubject         bool
		RequiredAudience        bool
		RequiredJwtId           bool
		RequiredData            bool
		SkipSignatureValidation bool
		SkipClaimsValidation    bool
	}
	Headers struct {
		RequiredContentType             bool
		RequiredKeyID                   bool
		RequiredX509CertificateChain    bool
		RequiredX509CertificateChainURL bool
		RequiredCritical                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