node.js - Using Passport.SocketIO cookie parser error -
मैं निम्नलिखित का उपयोग कर रहा हूं:
"निर्भरता": {"express": " ^ 4.0.0 "," सॉकेट.ओ ":" 0.9.16 "," मोंगोज़ ":" ^ 3.8.8 "," पासपोर्ट ":" ^ 0.2.0 "," पासपोर्ट-स्थानीय ":" ^ 1.0। 0 "," एक्सप्रेस-सत्र ":" ^ 1.0.3 "," कुकी-पार्सर ":" ^ 1.0.1 "," बॉडी-पार्सर ":" ^ 1.0.2 "," सत्र-मंगोज़ ":" git : //github.com/danpe/session-mongoose.git#master "," passport.socketio ":" ^ 3.0.1 "} मेरी socket.io प्राधिकरण सेट करना: < / P>
io.set ("authorization", passportSocketIo.authorize ({पासपोर्ट: पासपोर्ट, कुकी पार्सर: कुकीपरर्स), कुंजी: settings.sessionKey, // कुकी जहां एक्सप्रेस (या कनेक्ट) उसे संग्रहीत करती है सत्र आईडी गुप्त: settings.sessionSecret, // कुकी स्टोर को पार्स करने के लिए सत्र गुप्त: sessionStore, // सत्र का उपयोग करता है जो एक्सप्रेस एक्सप्रेस विफल: फ़ंक्शन (डेटा, स्वीकार करें) {console.log ("failed"); // कंसोल.लाग (डेटा); // * वैकल्पिक * कॉलबैक सफलता पर या असफल को स्वीकार (रिक्त, झूठी); // दूसरा परम बुलियन पर ले जाता है चाहे सभी को ओउ हाथशेक}, सफलता: कार्य (डेटा, स्वीकार) {console.log ("सफलता socket.io auth"); // console.log (डेटा); स्वीकार (रिक्त, सत्य); }})); जब मैं अपने ग्राहक से कनेक्ट करने का प्रयास कर रहा हूं:
var socket = io.connect ('http://127.0.0.1:3000/ '); Socket.on ('कनेक्ट', फ़ंक्शन) (// सॉकेट से जुड़े console.log ("सॉकेट कनेक्टेड!");}); सर्वर निम्न के साथ क्रैश करता है:
एस: \ सर्वर \ node_modules \ cookie-parser \ index.js: 27 var कुकीज़ = req.headers कुकी; ^ TypeError: ऑब्जेक्ट.cookieParser (S: \ Server \ node_modules \ cookie-parser \ index.js: 27: 30) पर पारस्की कुकी (एस: \ सर्वर \ node_modules \ passport.socketio \ lib पर अपरिभाषित संपत्ति 'कुकी' नहीं पढ़ सकता है \ Index.js: 4: 27) प्रबंधक पर। & Lt; अनाम & gt; (S: \ Server \ node_modules \ passport.socketio \ lib \ index.js: 37: 19) प्रबंधक पर। प्राधिकृत करें (S: \ Server \ node_modules \ socket.io \ lib \ manager.js: 910: 31) प्रबंधक पर .handleHandshake (S: \ Server \ node_modules \ socket.io \ lib \ manager.js: 786: 8) Manager.handleRequest पर (S: \ Server \ node_modules \ socket.io \ lib \ manager.js: 593: 12) सर्वर पर। & Lt; अनाम & gt; (S: \ Server \ node_modules \ socket.io \ lib \ manager.js: 119: 10) सर्वर पर। EventEmitter.emit (events.js: 98: 17) HTTPParser.parser.onIncoming पर (http.js: 2108: 12) HTTPParser.parserOnHeadersComplete पर [हेडर्स कॉम्प्लेटेस पर] (http.js: 121: 23) कोई भी विचार कैसे हो सकता है?
यह एक बेवकूफी गलती थी, मुझे कुकी पेर्स को एक तत्काल वस्तु के बजाय लाइब्रेरी के रूप में देना चाहिए:
var cookieParser = require ( 'कुकी-पार्सर'); Io.set ("authorization", passportSocketIo.authorize ({passport: passport, cookie पार्सर: कुकी पार्सर, कुंजी: settings.sessionKey, // कुकी जहां एक्सप्रेस (या कनेक्ट) उसका सत्र आईडी संग्रहीत करता है। Secret: settings.sessionSecret, // कुकी स्टोर को पार्स करने के लिए सत्र गुप्त: sessionStore, // सत्र का उपयोग करता है जो व्यक्त एक्सप्रेस विफल: फ़ंक्शन (डेटा, स्वीकार करें) {console.log ("विफल"); // console.log (डेटा); // * वैकल्पिक सफलता पर कॉलबैक या असफल (स्वीकारना, गलत); // दूसरा परम बुलियन पर ले जाता है या नहीं, हाथ से हासिल करने के लिए), सफलता: कार्य (डेटा, स्वीकार करें) {console.log ("success socket.io auth"); // console.log (डेटा); स्वीकार (नल, सच);}}));
Comments
Post a Comment