request

package
v0.0.0-...-80eb1b2 Latest Latest
Warning

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

Go to latest
Published: Feb 11, 2022 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AuthorizationHeaderExtractor = &PostExtractionFilter{
	HeaderExtractor{"Authorization"},
	stripBearerPrefixFromTokenString,
}

Extract bearer token from Authorization header Uses PostExtractionFilter to strip "Bearer " prefix from header

View Source
var (
	ErrNoTokenInRequest = errors.New("no token present in request")
)

Errors

View Source
var OAuth2Extractor = &MultiExtractor{
	AuthorizationHeaderExtractor,
	ArgumentExtractor{"access_token"},
}

Extractor for OAuth2 access tokens. Looks in 'Authorization' header then 'access_token' argument for a token.

Functions

func ParseFromRequest

func ParseFromRequest(req *http.Request, extractor Extractor, keyFunc jwt.Keyfunc, options ...ParseFromRequestOption) (token *jwt.Token, err error)

Extract and parse a JWT token from an HTTP request. This behaves the same as Parse, but accepts a request and an extractor instead of a token string. The Extractor interface allows you to define the logic for extracting a token. Several useful implementations are provided.

You can provide options to modify parsing behavior

func ParseFromRequestWithClaims

func ParseFromRequestWithClaims(req *http.Request, extractor Extractor, claims jwt.Claims, keyFunc jwt.Keyfunc) (token *jwt.Token, err error)

ParseFromRequest but with custom Claims type DEPRECATED: use ParseFromRequest and the WithClaims option

Types

type ArgumentExtractor

type ArgumentExtractor []string

Extract token from request arguments. This includes a POSTed form or GET URL arguments. Argument names are tried in order until there's a match. This extractor calls `ParseMultipartForm` on the request

func (ArgumentExtractor) ExtractToken

func (e ArgumentExtractor) ExtractToken(req *http.Request) (string, error)

type Extractor

type Extractor interface {
	ExtractToken(*http.Request) (string, error)
}

Interface for extracting a token from an HTTP request. The ExtractToken method should return a token string or an error. If no token is present, you must return ErrNoTokenInRequest.

type HeaderExtractor

type HeaderExtractor []string

Extractor for finding a token in a header. Looks at each specified header in order until there's a match

func (HeaderExtractor) ExtractToken

func (e HeaderExtractor) ExtractToken(req *http.Request) (string, error)

type MultiExtractor

type MultiExtractor []Extractor

Tries Extractors in order until one returns a token string or an error occurs

func (MultiExtractor) ExtractToken

func (e MultiExtractor) ExtractToken(req *http.Request) (string, error)

type ParseFromRequestOption

type ParseFromRequestOption func(*fromRequestParser)

func WithClaims

func WithClaims(claims jwt.Claims) ParseFromRequestOption

Parse with custom claims

func WithParser

func WithParser(parser *jwt.Parser) ParseFromRequestOption

Parse using a custom parser

type PostExtractionFilter

type PostExtractionFilter struct {
	Extractor
	Filter func(string) (string, error)
}

Wrap an Extractor in this to post-process the value before it's handed off. See AuthorizationHeaderExtractor for an example

func (*PostExtractionFilter) ExtractToken

func (e *PostExtractionFilter) ExtractToken(req *http.Request) (string, error)

Jump to

Keyboard shortcuts

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