2012-08-12 11 views
29

मैं कुछ इस तरह से एक्सप्रेस के साथ कुकी सत्र प्रबंधन कर रहा हूँ:आप सुपरजेंट के साथ कुकीज़ का उपयोग कैसे कर सकते हैं?

req.session.authentication = auth; 

और मैं की तरह

if(!req.session.authentication){res.send(401);} 

कुछ के साथ प्रमाणीकृत यूआरएल को सत्यापित मोचा के साथ यूआरएल के लिए परीक्षण कर रहा हूँ अब मैं निर्माण , superagent और should, हालांकि मुझे कुकी को सुपरजेंट के साथ पाने/सेट करने का कोई तरीका नहीं दिख रहा है। मैंने प्रमाणीकृत परीक्षण से पहले लॉगिन का अनुरोध करने का भी प्रयास किया लेकिन यह काम नहीं कर रहा है,

मैंने मोचा बीडीडी सूट के पहले कथन में लॉगिन करने का अनुरोध जोड़ने का प्रयास किया है, हालांकि यह अभी भी मुझे बता रहा है कि अनुरोध है अनधिकृत, मैंने ब्राउज़र से अनुरोध करने के प्रमाणीकरण का परीक्षण किया है, हालांकि यह सूट से काम नहीं कर रहा है क्यों?

उत्तर

28

अनुरोधों को लगातार कुकीज़ बनाने के लिए superagent.agent() (सादे पुराने superagent के बजाय) का उपयोग करें। 'Preserving cookies' in the superagent docs, या कोड उदाहरण देखें: agency.js, controller.test.js

+2

ध्यान दें कि 'superagent.agent()' है [गंभीर, गैर-दस्तावेजी में यह कैसे कुकीज़ संभालती मुद्दों] (https://github.com/visionmedia/superagent/issues/352) सबसे अनुरोध परिभाषा के लिए - 'get (url, opts, cb)' से अधिक जटिल कुछ भी गैर-दस्तावेज निजी विधियों में हुकिंग की आवश्यकता है। –

+3

वास्तव में दस्तावेज़ीकरण में कुकीज़ का कोई उल्लेख नहीं है। मैं वास्तव में इस पुस्तकालय को पसंद करना शुरू कर रहा था और लेखक की वजह से उच्च उम्मीद थी, लेकिन यदि आप सत्र कुकी का उपयोग करना चाहते हैं तो यह बेकार हो जाता है। –

+1

यह काम नहीं किया/अगर ऐसा हुआ तो यह वास्तव में पर्याप्त नहीं है ... क्या कोई यह उदाहरण प्रदान कर सकता है कि यह कैसे काम करता है .... – Zargold

13

लगता है कि निम्नलिखित कोड ठीक काम करता है;

req.set ('कुकी', "cookieName1 = cookieValue1; cookieName2 = cookieValue2");

+0

अच्छा आदमी - यह एक जवाब का मणि है! – danday74

1

जब से तुम तुम दोनों प्राप्त करने की आवश्यकता का उल्लेख किया और कुकी सेट:

प्राप्त करें:

const request = await Superagent.get('...') 

const cookie = request.header['set-cookie'] 

सेट:

Superagent.post('...').set('Cookie', 'cookie_info') 
4

मुद्दा कुकी में है, तो सीओआरएस अनुरोधों के लिए .withCredentials() विधि का उपयोग करें

request 
    .get('http://localhost:4001/') 
    .withCredentials() 
    .end(function(err, res) { }) 
संबंधित मुद्दे

 संबंधित मुद्दे