मिडिलवेयर से हैंडलर तक डेटा पास करना
आपके डिज़ाइन में, आपके पास मिडलवेयर है जो एक आने वाले अनुरोध को संसाधित करता है और हैंडलर जो एक http.Handler लौटाता है . आप मिडलवेयर से डेटा को हैंडलर तक भेजना चाहते हैं, विशेष रूप से अनुरोध निकाय से पार्स किया गया JSON वेब टोकन।
इसे प्राप्त करने के लिए, आप गोरिल्ला के संदर्भ पैकेज का उपयोग कर सकते हैं:
import ( "github.com/gorilla/context" ) func Middleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // Middleware operations // Parse body/get token. context.Set(r, "token", token) next.ServeHTTP(w, r) }) } func Handler() http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { token := context.Get(r, "token") }) }
मिडिलवेयर में, आप अनुरोध निकाय को पार्स करते हैं और अनुरोध संदर्भ में JWT को संग्रहीत करते हैं। फिर, हैंडलर में, आप JWT को संदर्भ से पुनः प्राप्त कर सकते हैं:
token := context.Get(r, "token")
यह आपको JWT को दोबारा पार्स करने से बचने की अनुमति देता है आपके हैंडलर, जो अधिक कुशल हैं। हैंडलर) http.हैंडलर { वापसी http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // मिडलवेयर ऑपरेशंस // बॉडी को पार्स करें/टोकन प्राप्त करें। ctx := context.WithValue(r.Context(), "टोकन", टोकन) अगला.ServeHTTP(w, r.WithContext(ctx)) }) } func हैंडलर() http.हैंडलर { वापसी http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { टोकन := r.Context().वैल्यू('टोकन') }) }
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3