|
package jwts
|
|
|
|
import "github.com/dgrijalva/jwt-go"
|
|
|
|
const (
|
|
//DefaultContextKey jwts
|
|
DefaultContextKey = "iris-jwt"
|
|
)
|
|
|
|
// Config is a struct for specifying configuration options for the jwts middleware.
|
|
type Config struct {
|
|
// The function that will return the Key to validate the JWT.
|
|
// It can be either a shared secret or a public key.
|
|
// Default value: nil
|
|
ValidationKeyGetter jwt.Keyfunc
|
|
// The name of the property in the request where the user (&token) information
|
|
// from the JWT will be stored.
|
|
// Default value: "jwts"
|
|
ContextKey string
|
|
// The function that will be called when there's an error validating the token
|
|
// Default value:
|
|
ErrorHandler errorHandler
|
|
// A boolean indicating if the credentials are required or not
|
|
// Default value: false
|
|
CredentialsOptional bool
|
|
// A function that extracts the token from the request
|
|
// Default: FromAuthHeader (i.e., from Authorization header as bearer token)
|
|
Extractor TokenExtractor
|
|
// Debug flag turns on debugging output
|
|
// Default: false
|
|
Debug bool
|
|
// When set, all requests with the OPTIONS method will use authentication
|
|
// if you enable this option you should register your route with iris.Options(...) also
|
|
// Default: false
|
|
EnableAuthOnOptions bool
|
|
// When set, the middelware verifies that tokens are signed with the specific signing algorithm
|
|
// If the signing method is not constant the ValidationKeyGetter callback can be used to implement additional checks
|
|
// Important to avoid security issues described here: https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/
|
|
// Default: nil
|
|
SigningMethod jwt.SigningMethod
|
|
// When set, the expiration time of token will be check every time
|
|
// if the token was expired, expiration error will be returned
|
|
// Default: false
|
|
Expiration bool
|
|
}
|