1
0
mirror of https://github.com/labstack/echo.git synced 2025-02-03 13:11:39 +02:00

Update key_auth.go (#984)

Add ability to extract key from a form field
This commit is contained in:
jerCarre 2017-12-28 18:32:14 +01:00 committed by Vishal Rana
parent 9ae7047759
commit d174d65fd5

View File

@ -20,6 +20,7 @@ type (
// Possible values:
// - "header:<name>"
// - "query:<name>"
// - "form:<name>"
KeyLookup string `json:"key_lookup"`
// AuthScheme to be used in the Authorization header.
@ -81,6 +82,8 @@ func KeyAuthWithConfig(config KeyAuthConfig) echo.MiddlewareFunc {
switch parts[0] {
case "query":
extractor = keyFromQuery(parts[1])
case "form":
extractor = keyFromForm(parts[1])
}
return func(next echo.HandlerFunc) echo.HandlerFunc {
@ -134,3 +137,14 @@ func keyFromQuery(param string) keyExtractor {
return key, nil
}
}
// keyFromForm returns a `keyExtractor` that extracts key from the form.
func keyFromForm(param string) keyExtractor {
return func(c echo.Context) (string, error) {
key := c.FormValue(param)
if key == "" {
return "", errors.New("Missing key in the form")
}
return key, nil
}
}