2012-03-10 11 views
6

से जोड़ने की इजाजत देता है, मैं किसी वेबपृष्ठ में किसी आईओएस डिवाइस से डिवाइस यूयूआईडी पढ़ने में सक्षम होना चाहता हूं। मैं समझता हूं कि स्पष्ट सुरक्षा समस्याओं के लिए जावास्क्रिप्ट का उपयोग करना संभव नहीं है लेकिन मैं हर दिन testflight का उपयोग करता हूं और मैं देख सकता हूं कि उनके पास डिवाइसों तक पहुंच है।आईओएस प्रमाण पत्र वेबसाइट द्वारा स्थापित यूआईआईआईडी को सत्र

ऐसा लगता है कि जब आप अपना डिवाइस पंजीकृत करते हैं तो आपके आईफोन पर एक प्रकार की प्रावधान प्रोफ़ाइल स्थापित करके ऐसा करते हैं।

मुझे कुछ ऐसा करने के लिए किस प्रकार का प्रमाणपत्र/प्रावधान प्रोफ़ाइल उपयोग करना चाहिए?

मैं फिर एक डिवाइस यूयूआईडी को वेबपृष्ठ सत्र में लिंक करने में सक्षम होगा। मैं समझता हूं कि इसके लिए उन उपयोगकर्ताओं से पावती की आवश्यकता है जो मेरे लिए बिल्कुल ठीक है।मैं इस तथ्य के चारों ओर एक रास्ता खोजने की कोशिश नहीं कर रहा हूं कि हम कोड से डिवाइस यूयूआईडी तक नहीं पहुंच सकते हैं, मैं यह पूछ रहा हूं क्योंकि मुझे पता है कि testflight यह

उत्तर

3

ठीक है! मुझे लगता है मैं अब समझ गया।

आप सही हैं, यूडीआईडी ​​निश्चित रूप से ब्राउज़र द्वारा नहीं भेजा गया है। मुझे भी आश्वस्त था कि सफारी की सुरक्षा दोष, या ऐसा कुछ भी हो गया था, क्योंकि testflightapp यूडीआईडी ​​के समान एक अद्वितीय आईडी जोड़ता है, लेकिन नहीं।

वे वास्तव में क्या करते हैं, एक नया डिवाइसआईडी उत्पन्न होता है (यूडीआईडी ​​से संबंधित नहीं)। फिर, डिवाइस को पंजीकृत करने के लिए, वे विशेष रूप से इस डिवाइस आईडी में बनाई गई प्रोफ़ाइल उत्पन्न करते हैं, जिसमें Enrollment Payload होता है जो डिवाइस को उस URL के विरुद्ध नामांकित करता है जिसमें testflightapp द्वारा जेनरेट किया गया यह डिवाइस आईडी है।

इस नामांकन प्रक्रिया में, डिवाइस को यूडीआईडी ​​(साथ ही अन्य डेटा) भेजने के लिए प्रोफ़ाइल से पूछा जाता है। इस जानकारी के लिए प्रोफ़ाइल पूछता है:

<array> 
    <string>UDID</string> 
    <string>IMEI</string> 
    <string>ICCID</string> 
    <string>VERSION</string> 
    <string>PRODUCT</string> 
    <string>MODEL</string> 
    <string>DEVICE_NAME</string> 
</array> 

तो, जब डिवाइस इस डिवाइस का नामांकन testflightapp सर्वर से पूछता है, वे प्रोफ़ाइल में संग्रहीत कि DeviceID संबंधित करने में सक्षम हो, की वास्तविक UDID साथ वर्तमान डिवाइस इस तरह वे ब्राउज़र में दिखाते हैं कि प्रक्रिया पूरी हो गई है और यूडीआईडी ​​रखें।

लेकिन, यह जवाब पूरा नहीं करता है, क्योंकि मैंने हल नहीं किया है (अभी तक) वे वास्तव में यूडीआईडी ​​के साथ इस वेब सत्र को कैसे जोड़ते हैं, भले ही सत्र मर जाता है, और डिवाइस आईडी अनाथ हो जाता है। उत्तर लगता है (पुष्टि नहीं की गई है, लेकिन 99% निश्चित है!) कि नामांकन प्रक्रिया आपके स्प्रिंगबोर्ड मेनू में एक वेबक्लिप डालने के लिए परिभाषित करने की अनुमति देती है। इस वेबक्लिप ने यूआरएल में डिवाइस के यूडीआईडी ​​को लिखा है, इसलिए जब भी आप इस वेबक्लिप के माध्यम से testflightapp में जाते हैं, तो आप सत्र में अपने यूडीआईडी ​​नंबर को रीफ्रेश कर रहे हैं, इससे कोई फर्क नहीं पड़ता कि सत्र मर जाता है या नहीं।

आशा है कि मेरी पोस्ट अब मदद करेगी! अपूर्ण-गलत सूचना के लिए दोबारा क्षमा करें।

+0

वास्तव में अच्छा लगता है। इसने खुद को जांच नहीं लिया क्योंकि अभी तक मैं ऐसी सुविधा को लागू करने की प्रक्रिया में नहीं हूं। धन्यवाद ! – rpechayr

+0

मैं इस समय इस सटीक क्षेत्र को देख रहा हूं। मेरा मानना ​​है कि वेबक्लिप एक यूआरएल से मेल खाता है (इस मामले में * .testflightapp.com) से मेल खाता है, और किसी भी समय आईओएस सफारी उस यूआरएल को हिट करता है जो उस पैटर्न से मेल खाता है, हस्ताक्षर जानकारी भी भेजी जाती है। और वह हस्ताक्षर जानकारी आपके यूडीआईडी ​​/ आपके खाते से आपका अनुरोध करती है। – occulus

+0

यदि आप springboard शॉर्टकट के लिए WebClip के URL को देखते हैं, तो URL में कोई उपयोगकर्ता जानकारी नहीं है। जैसा कि पहले उल्लेख किया गया है, वे हस्ताक्षर प्रमाण पर भरोसा करते हैं। – occulus

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