github.com/googlecloudplatform/kubernetes-workshops@v0.0.0-20180501174420-d8199445b2c3/bundles/kubernetes-101/workshop/app/handlers/jwt.go (about)

     1  package handlers
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/dgrijalva/jwt-go"
     7  )
     8  
     9  func JWTAuthHandler(h http.HandlerFunc) http.HandlerFunc {
    10  	return func(w http.ResponseWriter, r *http.Request) {
    11  		token, err := jwt.ParseFromRequest(r, func(token *jwt.Token) (interface{}, error) {
    12  			return []byte("secret"), nil
    13  		})
    14  		if err != nil || !token.Valid {
    15  			http.Error(w, "authorization failed", http.StatusUnauthorized)
    16  			return
    17  		}
    18  		h(w, r)
    19  	}
    20  }