मैं अनुरोध मैं गो सर्वर को भेजने के लिए कोशिश कर रहा हूँ में एक अतिरिक्त पैरामीटर पारित करने के लिए कोशिश कर रहा हूँ का उपयोग कर जाओ HTTP अनुरोध हैंडलर के लिए एक क्वेरी पैरामीटर पासिंग निम्नानुसार -MUX पैकेज
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":
}
})
}
मुझे गो सर्वर में टोकन के लिए कैसे दिखना चाहिए और पार्स करना चाहिए ताकि प्रमाणीकरण सफल हो?
token := req.FormValue("token")
req
एक *http.Request
एक वैकल्पिक ParseForm और पहुँच req.Form सीधे कॉल करने के लिए है:
लाइब्रेरी समारोह
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) > 6 && 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
}
कैसे के बारे में मैं कुछ इस तरह का उपयोग करें - टोकन: = req.URL.Query() जाओ ("टोकन") – psbits
कूल। , धन्यवाद, मैं उपरोक्त कोड में उपयोग किए जाने वाले औथ फ़ंक्शन में इस टोकन पैरामीटर में कैसे पास करूं? एक और सवाल यह है कि बाहरी पुस्तकालय जिसका उपयोग मैं कर रहा हूं "access_token" पैरामीटर और मेरे सर्वर कोड में, मैं इस तर्क को "टोकन" पैरामीटर को संभालने के लिए जोड़ूंगा। मैं "टोकन" को "Access_token" में आंतरिक रूप से कैसे मैप कर सकता हूं ताकि पुस्तकालय अनुरोध में पारित इस टोकन को सफलतापूर्वक प्रमाणित कर सके? – psbits
पुस्तकालय क्वेरी पैरामीटर कैसे प्राप्त करता है? क्या यह req.Form का उपयोग करता है? –