Documentation ¶
Index ¶
Constants ¶
const ContestRoles = "Roles"
const ContextUserID = "UserID"
Variables ¶
This section is empty.
Functions ¶
func ExtractClaims ¶
ExtractClaims help to extract the JWT claims
func ImpersonateFromHeader ¶
func ImpersonateFromHeader() gin.HandlerFunc
ImpersonateFromHeader is a Gin Handler that sets userid based on the impersonate header.
Types ¶
type GinAuth0Middleware ¶
type GinAuth0Middleware struct { // Realm name to display to the user. Required. Realm string // signing algorithm - possible values are HS256, HS384, HS512 // Optional, default is HS256. SigningAlgorithm string // Secret key used for signing. Required. Key interface{} // Duration that a jwt token is valid. Optional, defaults to one hour. Timeout time.Duration // This field allows clients to refresh their token until MaxRefresh has passed. // Note that clients can refresh their token in the last moment of MaxRefresh. // This means that the maximum validity timespan for a token is MaxRefresh + Timeout. // Optional, defaults to 0 meaning not refreshable. MaxRefresh time.Duration // Callback function that should perform the authorization of the authenticated user. Called // only after an authentication success. Must return true on success, false on failure. // Optional, default to success. Authorizator func(userID string, c *gin.Context) bool // Callback function that will be called during login. // Using this function it is possible to add additional payload data to the webtoken. // The data is then made available during requests via c.Get("JWT_PAYLOAD"). // Note that the payload is not encrypted. // The attributes mentioned on jwt.io can't be used as keys for the map. // Optional, by default no additional data will be set. PayloadFunc func(userID string) map[string]interface{} Unauthorized func(*gin.Context, int, string) // Set the identity handler function IdentityHandler func(jwt.MapClaims) string // 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>" // - "cookie:<name>" TokenLookup string // TokenHeadName is a string in the header. Default value is "Bearer" TokenHeadName string // TimeFunc provides the current time. You can override it to use another time value. This is useful for testing or if your server uses a different time zone than your tokens. TimeFunc func() time.Time //Audinece sets expected token audience Audience string //Issuer sets expected token issuer Issuer string }
GinAuth0Middleware provides a Json-Web-Token authentication implementation for Auth0. On failure, a 401 HTTP response is returned. On success, the wrapped middleware is called, and the userID is made available as c.Get("userID").(string). The token then needs to be passed in the Authentication header. Example: Authorization:Bearer XXX_TOKEN_XXX
func (*GinAuth0Middleware) ExpectScope ¶
func (mw *GinAuth0Middleware) ExpectScope(scope string) gin.HandlerFunc
ExpectScope is a Gin Handler that aborts connections missing the specified OAUTH scope.
func (*GinAuth0Middleware) MiddlewareFunc ¶
func (mw *GinAuth0Middleware) MiddlewareFunc() gin.HandlerFunc
MiddlewareFunc makes GinAuth0Middleware implement the Middleware interface.
func (*GinAuth0Middleware) MiddlewareInit ¶
func (mw *GinAuth0Middleware) MiddlewareInit() error
MiddlewareInit initialize jwt configs.
func (*GinAuth0Middleware) TokenGenerator ¶
func (mw *GinAuth0Middleware) TokenGenerator(userID string) string
TokenGenerator handler that clients can use to get a jwt token.