code: func verifyJSON(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
  	var echoReq *EchoRequest
  	err := json.NewDecoder(r.Body).Decode(&echoReq)
  	if err != nil {
  		HTTPError(w, err.Error(), "Bad Request", 400)
  		return
  	}
  
  	// Check the timestamp
  	if !echoReq.VerifyTimestamp() && r.URL.Query().Get("_dev") == "" {
  		HTTPError(w, "Request too old to continue (>150s).", "Bad Request", 400)
  		return
  	}
  
  	// Check the app id
  	if !echoReq.VerifyAppID(applications[r.URL.Path].(EchoApplication).AppID) {
  		HTTPError(w, "Echo AppID mismatch!", "Bad Request", 400)
  		return
  	}
  
  	r = r.WithContext(context.WithValue(r.Context(), requestContextKey("echoRequest"), echoReq))
  
  	next(w, r)
  }
docs: // Decode the JSON request and verify it.