title: Passing a query parameter to the Go HTTP request handler using the MUX package
body: <p>I am trying to pass an additional parameter in the request I am trying to send to the Go server -</p>
  
  <pre><code>websocket.create_connection("ws://&lt;ip&gt;:port/x/y?token="qwerty")
  </code></pre>
  
  <p>The Go server implementation is as follows - </p>
  
  <pre><code>func main() {
      err := config.Parse()
      if err != nil {
          glog.Error(err)
          os.Exit(1)
          return
      }
  
      flag.Parse()
      defer glog.Flush()
  
      router := mux.NewRouter()
      http.Handle("/", httpInterceptor(router))
  
      router.Handle("/v1/x", common.ErrorHandler(stats.GetS)).Methods("GET")
      router.Handle("/v1/x/y", common.ErrorHandler(stats.GetS)).Methods("GET")
  
      var listen = fmt.Sprintf("%s:%d", config.Config.Ip, config.Config.Port)
      err = http.ListenAndServe(listen, nil)
  
      if err != nil {
          glog.Error(err)
          os.Exit(1)
      }
  }
  
  func httpInterceptor(router http.Handler) http.Handler {
      return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
          startTime := time.Now()
  
          if !auth.Auth(w, req) {
              http.Error(w, "Failed authentication", 401)
              return
          }
  
          router.ServeHTTP(w, req)
  
          finishTime := time.Now()
          elapsedTime := finishTime.Sub(startTime)
  
          switch req.Method {
          case "GET":
          case "POST":
          }
  
      })
  }
  </code></pre>
  
  <p>How should I look and parse for the token in the Go server so that the authentication is successful? </p>
  
  <p>Library function</p>
  
  <pre><code>func ParseFromRequest(req *http.Request, keyFunc Keyfunc) (token *Token, err error) {
  
      // Look for an Authorization header
      if ah := req.Header.Get("Authorization"); ah != "" {
          // Should be a bearer token
          if len(ah) &gt; 6 &amp;&amp; strings.ToUpper(ah[0:6]) == "BEARER" {
              return Parse(ah[7:], keyFunc)
          }
      }
  
      // Look for "access_token" parameter
      req.ParseMultipartForm(10e6)
      if tokStr := req.Form.Get("access_token"); tokStr != "" {
          return Parse(tokStr, keyFunc)
      }
  
      return nil, ErrNoTokenInRequest
  
  }
  </code></pre>