summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/dgrijalva/jwt-go/request/request.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/dgrijalva/jwt-go/request/request.go')
-rw-r--r--vendor/github.com/dgrijalva/jwt-go/request/request.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/vendor/github.com/dgrijalva/jwt-go/request/request.go b/vendor/github.com/dgrijalva/jwt-go/request/request.go
new file mode 100644
index 00000000..1807b396
--- /dev/null
+++ b/vendor/github.com/dgrijalva/jwt-go/request/request.go
@@ -0,0 +1,24 @@
+package request
+
+import (
+ "github.com/dgrijalva/jwt-go"
+ "net/http"
+)
+
+// Extract and parse a JWT token from an HTTP request.
+// This behaves the same as Parse, but accepts a request and an extractor
+// instead of a token string. The Extractor interface allows you to define
+// the logic for extracting a token. Several useful implementations are provided.
+func ParseFromRequest(req *http.Request, extractor Extractor, keyFunc jwt.Keyfunc) (token *jwt.Token, err error) {
+ return ParseFromRequestWithClaims(req, extractor, jwt.MapClaims{}, keyFunc)
+}
+
+// ParseFromRequest but with custom Claims type
+func ParseFromRequestWithClaims(req *http.Request, extractor Extractor, claims jwt.Claims, keyFunc jwt.Keyfunc) (token *jwt.Token, err error) {
+ // Extract token from request
+ if tokStr, err := extractor.ExtractToken(req); err == nil {
+ return jwt.ParseWithClaims(tokStr, claims, keyFunc)
+ } else {
+ return nil, err
+ }
+}