2011-05-29 12 views
12

मैं एक WebSocket सर्वर चल रहा हूँ और पूछ अपने आप को, अगर यह planed है, कि ग्राहकों प्रमाणीकरण भविष्य में हाथ मिलाना के साथ किया जा जाएगा ... मसौदा शायद xxxx :)WebSocket प्रमाणीकरण

आप जानकारी है? मैंने सुना है कि ड्राफ्ट 07 के साथ एक सत्र आईडी सर्वर पर भेजी जा सकती है, इसलिए हो सकता है कि वह क्लाइंट को लिखने में मदद कर सके ...

मैं जो कर रहा हूं वह अधिकतम 10 सेकंड तक प्रतीक्षा करना है, जब तक कि ग्राहक भेजता है मुझे लॉगिन हेडर, उपयोगकर्ता नाम और पासवर्ड वाला एक संदेश। लेकिन मुझे लगता है कि यह "समाधान" नहीं है। आप लोग इसे कैसे कर रहे हैं?

उत्तर

9

वेबसाकेट प्रोटोकॉल हैंडशेक के दौरान मानक HTTP प्रमाणीकरण हेडर का आदान-प्रदान करने की अनुमति देता है। यदि आपके पास एक वेबसाकेट सर्वर है जो किसी मौजूदा वेब सर्वर को मॉड्यूल के रूप में प्लग करता है तो वेब सर्वर में मौजूदा प्रमाणीकरण पहले से ही काम करना चाहिए। अन्यथा यदि आपके पास एक स्टैंडअलोन वेबस्केट सर्वर है तो आपको प्रमाणीकरण समर्थन जोड़ने की आवश्यकता हो सकती है।

अद्यतन

@Jon बताते हैं के रूप में, सामान्य HTTP/एक्सएचआर अनुरोधों के विपरीत, ब्राउज़र एपीआई आप WebSocket कनेक्शन के लिए मनमाने ढंग से "एक्स *" हेडर स्थापित करने के लिए अनुमति नहीं है। एकमात्र शीर्षलेख मान जिसे आप सेट कर सकते हैं प्रोटोकॉल है। यह दुर्भाग्यपूर्ण है। एक सामान्य समाधान टिकट आधारित प्रणाली का उपयोग करना है जो प्रमाणीकरण/प्रमाणीकरण के लिए मौजूदा HTTP तंत्र पर निर्भर करता है और फिर यह टिकट वेबस्केट कनेक्शन के साथ पास किया जाता है और इस तरह से मान्य किया जाता है: https://devcenter.heroku.com/articles/websocket-security

+0

यह वेबसॉकेट चश्मा का हिस्सा हो सकता है, लेकिन यह अधिकांश ब्राउज़रों में वेबसॉकेट एपीआई का हिस्सा नहीं है। आप ब्राउज़रों में वेबसॉकेट हैंडशेक के साथ कस्टम हेडर नहीं भेज सकते हैं। सामान्य HTTP/XHR अनुरोधों के विपरीत https://github.com/SocketCluster/socketcluster-client/issues/9 – Jon

+0

_ देखें, आप WebSocket कनेक्शन के लिए मनमाने ढंग से "एक्स- *" हेडर सेट नहीं कर सकते हैं। "_ - वास्तव में @ जोन ने बताया कि आप ** वेबसाकेट जेएस एपीआई ** के माध्यम से ऐसा नहीं कर सकते हैं। ऐसा कहने के समान नहीं है कि यह * वेबस्केट कनेक्शन * के लिए नहीं किया जा सकता है। – Madbreaks

+1

@Madbreaks अच्छा बिंदु। मैंने स्पष्ट किया है कि यह वेबसाकेट प्रोटोकॉल सीमा के बजाय विशेष रूप से एक वेबसाकेट ब्राउज़र एपीआई है। इसके अलावा, कुछ नोड.जेएस/जेएस वेबसॉकेट कार्यान्वयन हैं जो आपको हेडर सेट करने की अनुमति देते हैं। तो वास्तव में यह केवल डब्ल्यू 3 सी ब्राउज़र एपीआई है जो एक तंत्र प्रदान नहीं करता है। – kanaka

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