working better

Former-commit-id: 682c7d56814a3c9a35fcf55b540e470b5c66d890 [formerly a603a591938ec8edbe3f703772f86ba978ff92de] [formerly 6d1a11fdeb5d3a00c202e125a0873b263a3787cf [formerly 12c466d2aafbd07bea83352c03d0ad19347dbea3]]
Former-commit-id: 4f43bbf0b4f91a9528cdf881f4abbdfc098b82cd [formerly 7fc1e010ac54107ff03762ad729ed54beccca02c]
Former-commit-id: 4d464034e98aefbdce39d142a30bf34aa3fd2d2e
This commit is contained in:
Henrique Dias
2017-07-03 15:19:17 +01:00
parent bae3c341f6
commit 067051ea09
20 changed files with 292 additions and 250 deletions

19
auth.go
View File

@@ -86,16 +86,31 @@ func renewAuthHandler(c *requestContext, w http.ResponseWriter, r *http.Request)
return 0, nil
}
type extractor []string
func (e extractor) ExtractToken(r *http.Request) (string, error) {
token, _ := request.AuthorizationHeaderExtractor.ExtractToken(r)
if token != "" {
return token, nil
}
token, _ = request.ArgumentExtractor{"token"}.ExtractToken(r)
if token != "" {
return token, nil
}
return "", request.ErrNoTokenInRequest
}
// validateAuth is used to validate the authentication and returns the
// User if it is valid.
func validateAuth(c *requestContext, r *http.Request) (bool, *User) {
keyFunc := func(token *jwt.Token) (interface{}, error) {
return c.fm.key, nil
}
var claims claims
token, err := request.ParseFromRequestWithClaims(r,
request.AuthorizationHeaderExtractor,
extractor{},
&claims,
keyFunc,
)