Documentation ¶
Overview ¶
Special thanks to Echo: https://github.com/labstack/echo/blob/master/middleware/key_auth.go
Index ¶
- Variables
- func New(config ...Config) fiber.Handler
- func TokenFromContext(c *fiber.Ctx) string
- type Config
- type KeyLookupFunc
- func DefaultKeyLookup(keyLookup, authScheme string) (KeyLookupFunc, error)
- func KeyFromCookie(name string) KeyLookupFunc
- func KeyFromForm(param string) KeyLookupFunc
- func KeyFromHeader(header, authScheme string) KeyLookupFunc
- func KeyFromParam(param string) KeyLookupFunc
- func KeyFromQuery(param string) KeyLookupFunc
- func MultipleKeySourceLookup(keyLookups []string, authScheme string) (KeyLookupFunc, error)
Constants ¶
This section is empty.
Variables ¶
var ConfigDefault = Config{ SuccessHandler: func(c *fiber.Ctx) error { return c.Next() }, ErrorHandler: func(c *fiber.Ctx, err error) error { if errors.Is(err, ErrMissingOrMalformedAPIKey) { return c.Status(fiber.StatusUnauthorized).SendString(err.Error()) } return c.Status(fiber.StatusUnauthorized).SendString("Invalid or expired API Key") }, KeyLookup: "header:" + fiber.HeaderAuthorization, CustomKeyLookup: nil, AuthScheme: "Bearer", }
ConfigDefault is the default config
var ErrMissingOrMalformedAPIKey = errors.New("missing or malformed API Key")
When there is no request of the key thrown ErrMissingOrMalformedAPIKey
Functions ¶
func TokenFromContext ¶
func TokenFromContext(c *fiber.Ctx) string
TokenFromContext returns the bearer token from the request context. returns an empty string if the token does not exist
Types ¶
type Config ¶
type Config struct { // Next defines a function to skip middleware. // Optional. Default: nil Next func(*fiber.Ctx) bool // SuccessHandler defines a function which is executed for a valid key. // Optional. Default: nil SuccessHandler fiber.Handler // ErrorHandler defines a function which is executed for an invalid key. // It may be used to define a custom error. // Optional. Default: 401 Invalid or expired key ErrorHandler fiber.ErrorHandler // KeyLookup is a string in the form of "<source>:<name>" that is used // to extract key from the request. // Optional. Default value "header:Authorization". // Possible values: // - "header:<name>" // - "query:<name>" // - "form:<name>" // - "param:<name>" // - "cookie:<name>" KeyLookup string CustomKeyLookup KeyLookupFunc // AuthScheme to be used in the Authorization header. // Optional. Default value "Bearer". AuthScheme string // Validator is a function to validate key. Validator func(*fiber.Ctx, string) (bool, error) }
Config defines the config for middleware.
type KeyLookupFunc ¶
func DefaultKeyLookup ¶
func DefaultKeyLookup(keyLookup, authScheme string) (KeyLookupFunc, error)
func KeyFromCookie ¶
func KeyFromCookie(name string) KeyLookupFunc
keyFromCookie returns a function that extracts api key from the named cookie.
func KeyFromForm ¶
func KeyFromForm(param string) KeyLookupFunc
keyFromForm returns a function that extracts api key from the form.
func KeyFromHeader ¶
func KeyFromHeader(header, authScheme string) KeyLookupFunc
keyFromHeader returns a function that extracts api key from the request header.
func KeyFromParam ¶
func KeyFromParam(param string) KeyLookupFunc
keyFromParam returns a function that extracts api key from the url param string.
func KeyFromQuery ¶
func KeyFromQuery(param string) KeyLookupFunc
keyFromQuery returns a function that extracts api key from the query string.
func MultipleKeySourceLookup ¶
func MultipleKeySourceLookup(keyLookups []string, authScheme string) (KeyLookupFunc, error)
MultipleKeySourceLookup creates a CustomKeyLookup function that checks multiple sources until one is found Each element should be specified according to the format used in KeyLookup