2016-02-26 21 views
5

के साथ वेबसाइट का उपयोग करना जब कोई वेबसेट कनेक्शन खोलता है तो मैं वर्तमान सत्र के लिए पासपोर्ट लॉगिन कैसे एक्सेस करूं?पासपोर्ट

मैं एक अच्छा परियोजना express-ws जो खूबसूरती से

app.ws('/', function(ws, req) { 
    ws.on('message', function(msg) { 
     console.log('express-ws --- ', msg); 
    }); 
    console.log('socket', req.user); //current user == req.user 
}); 

काम करने के लिए लेकिन मैं एक सादे WebSocket कनेक्शन के साथ यह एक ही जानकारी प्राप्त करने के बारे में कैसे जाना होगा लगता है मिल गया है?

var WebSocketServer = require('ws').Server, 
    wss = new WebSocketServer({ port: 3001 }); 

wss.on('connection', function(socket){ 
    //Where is the current user???? 
    console.log('connection'); 

    socket.on('message', function(message){ 
     console.log('message received', message); 
    }); 
}); 

(इस दूसरे कनेक्शन ठीक काम करता है - लेकिन मैं मुझे के जीवन के लिए पासपोर्ट से जानकारी में लॉग इन किया पाने के लिए किसी भी तरह से नहीं मिल सकता है)

उत्तर

-1

इसके बजाय req.session.passport.user का उपयोग कर प्रमाणीकृत उपयोगकर्ता तक पहुँचने के लिए की आईडी, कोई ws.upgradeReq.session.passport.user का उपयोग कर सकता है।

const wss = new (require('ws').Server)({ 
    server, 
    verifyClient: (info, done) => { 
     sessionParser(info.req, {},() => { 
     done(info.req.session) 
     }) 
    } 
    }) 

कहाँ sessionParser अपने express-session कॉन्फ़िगर किया गया वस्तु है:

app.ws('/', function(ws, req) { 
    ws.on('message', function(msg) { 
     console.log('express-ws --- ', msg); 
    }); 
    console.log(ws.upgradeReq.session.passport.user); 
    /* keys can be found like 
    for(var key in ws.upgradeReq.session.passport){ 
     console.log(key); 
    } 
    */ 
}); 
+0

कृपया बताएं कि आपके कोड में क्या चल रहा है। बस एक कोड नमूना पोस्ट करने से ओपी या भविष्य के पाठकों को समझाया जाएगा कि मूल समस्या के साथ क्या गलत हुआ, या आपका समाधान क्यों काम करता है। – BHustus

+0

@BHustus अब ठीक है? – rfprod

+0

मेरे लिए अच्छा लग रहा है। – BHustus

1

आप अपने WS सर्वर बनाते समय, एक "verifyClient" पैरामीटर के रूप में सत्र जानकारी हड़पने के लिए इस प्रकार जोड़ें। यह आपको req.session के माध्यम से वेबसाईट के भीतर पहुंचने की अनुमति देता है। यदि आप पासपोर्ट का उपयोग कर रहे हैं, तो आप req.session.passport.user चाहते हैं ..

+0

आपको बहुत बहुत धन्यवाद, यह वास्तविक जवाब है – PaNaVTEC

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