Documentation ¶
Overview ¶
Copyright 2016 Wenhui Shen <www.webx.top>
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- Variables
- func BuildMapSignedString(claims jwt.MapClaims, mySigningKey interface{}) (string, error)
- func BuildRegisteredSignedString(claims *jwt.RegisteredClaims, mySigningKey interface{}) (string, error)
- func BuildSignedString(claims jwt.Claims, mySigningKey interface{}) (string, error)
- func JWT(key []byte) echo.MiddlewareFuncd
- func JWTWithConfig(config JWTConfig) echo.MiddlewareFuncd
- type JWTConfig
- func (j *JWTConfig) ErrorHandler() func(c echo.Context, err error)
- func (j *JWTConfig) FallbackExtractor() func(c echo.Context) (string, error)
- func (j *JWTConfig) SetErrorHandler(errorHandler func(c echo.Context, err error)) *JWTConfig
- func (j *JWTConfig) SetFallbackExtractor(extractor func(c echo.Context) (string, error)) *JWTConfig
- func (j *JWTConfig) SetTokenPreprocessor(tokenPreprocessor func(c echo.Context, token string) (string, error)) *JWTConfig
Constants ¶
const (
AlgorithmHS256 = "HS256"
)
Algorithims
Variables ¶
var ( // DefaultJWTConfig is the default JWT auth middleware config. DefaultJWTConfig = JWTConfig{ Skipper: echo.DefaultSkipper, SigningMethod: AlgorithmHS256, ContextKey: "jwtUser", TokenLookup: "header:" + echo.HeaderAuthorization, Claims: jwt.MapClaims{}, OnErrorAbort: true, // contains filtered or unexported fields } )
var (
ErrJWTMissing = echo.NewHTTPError(http.StatusBadRequest, "missing or malformed jwt")
)
Errors
Functions ¶
func BuildMapSignedString ¶ added in v1.6.0
BuildMapSignedString example: github.com/golang-jwt/jwt/example_test.go
func BuildRegisteredSignedString ¶ added in v1.6.0
func BuildRegisteredSignedString(claims *jwt.RegisteredClaims, mySigningKey interface{}) (string, error)
BuildRegisteredSignedString example: github.com/golang-jwt/jwt/example_test.go
func BuildSignedString ¶ added in v1.6.0
BuildSignedString example: github.com/golang-jwt/jwt/example_test.go
func JWT ¶
func JWT(key []byte) echo.MiddlewareFuncd
JWT returns a JSON Web Token (JWT) auth middleware.
For valid token, it sets the user in context and calls next handler. For invalid token, it returns "401 - Unauthorized" error. For empty token, it returns "400 - Bad Request" error.
See: https://jwt.io/introduction See `JWTConfig.TokenLookup`
func JWTWithConfig ¶
func JWTWithConfig(config JWTConfig) echo.MiddlewareFuncd
JWTWithConfig returns a JWT auth middleware with config. See: `JWT()`.
Types ¶
type JWTConfig ¶
type JWTConfig struct { // Skipper defines a function to skip middleware. Skipper echo.Skipper `json:"-"` // Signing key to validate token. // Required. SigningKey interface{} `json:"signing_key"` // Signing method, used to check token signing method. // Optional. Default value HS256. SigningMethod string `json:"signing_method"` // Context key to store user information from the token into context. // Optional. Default value "user". ContextKey string `json:"context_key"` // Claims are extendable claims data defining token content. // Optional. Default value jwt.MapClaims Claims jwt.Claims // TokenLookup is a string in the form of "<source>:<name>" that is used // to extract token from the request. // Optional. Default value "header:Authorization". // Possible values: // - "header:<name>" // - "query:<name>" // - "param:<name>" // - "cookie:<name>" TokenLookup string `json:"token_lookup"` OnErrorAbort bool `json:"on_error_abort"` // contains filtered or unexported fields }
JWTConfig defines the config for JWT middleware.