2013-09-25 6 views
5

मेरा संगठन वेब अनुप्रयोग है कि आईओएस 6 में पूरी तरह से काम किया है आप वेबसाइट पर जाएँ चाहते हैं, वेबसाइट आप अपने होमस्क्रीन, और उछाल के लिए पृष्ठ जोड़ने के लिए बता होता था जवाब नहीं है, होम स्क्रीन पर एक अच्छा एचटीएमएल 5 वेब ऐप जोड़ा गया था।HTTP प्रमाणीकरण

हम संवेदनशील डेटा प्रोसेस कर रहे हैं क्योंकि, वेब अनुप्रयोग HTTP प्रमाणीकरण (देशी वेबकिट प्रमाणन संवाद के माध्यम से) का इस्तेमाल किया उपयोगकर्ता को प्रमाणित करने/गुजरता है। यह आईओएस 7 तक एक झुकाव के बिना काम किया। अब जब कोई HTTP लेख संवाद को बुलावा करने की कोशिश करता है, तो कुछ भी नहीं होता है। यह स्पष्ट रूप से कुछ लोड करने के लिए का प्रयास कर रहा है, क्योंकि स्टेटस बार में स्पिनर दिखाई देता है, लेकिन कोई भी संवाद कभी भी पॉप अप नहीं करता है, अनिवार्य रूप से "ऐप" तोड़ता है।

इस में किसी और रन है? क्या यह ऐसा कुछ है जिसे आप ऐप्पल के अंत में एक बग मानते हैं? कोई कामकाज?

+0

क्या आपने इस समस्या को पुन: उत्पन्न करने का प्रयास किया है? कम से कम आपको पता चलेगा कि यह सफारी बग है या नहीं। – Pavlo

+0

यह * स्क्रीन * होम स्क्रीन में जोड़े गए वेब ऐप्स में होता है। सफारी (ऐप) प्रमाणीकरण संवाद को सही तरीके से संभालती है, लेकिन मैं उन्हें वेब ऐप्स में काम नहीं कर सकता। – oldwren

+1

हमने इसी तरह के व्यवहार का अनुभव किया है, मेरा प्रश्न देखें http://stackoverflow.com/questions/18976407/broken-basic- प्रमाणीकरण-in-web-apps-on-ios-7 –

उत्तर

1

मैं ठीक उसी समस्या है। मूल प्रमाणीकरण पिछले आईओएस संस्करणों के साथ काम करता था लेकिन होम स्क्रीन में जोड़े गए वेब ऐप्स के संयोजन में आईओएस 7 के साथ नहीं। मुझे लगता है कि यह here वर्णित संवाद समस्या से संबंधित हो सकता है।

मानक संवाद बिल्कुल काम नहीं कर रहे हैं, जैसे चेतावनी, पुष्टि या प्रॉम्प्ट।

कि प्रमाणित करने के लिए उपयोगकर्ता शायद अवरुद्ध है (काम नहीं करता है या दिखाई नहीं देता है) और यही वजह है वेब एप्लिकेशन को प्रमाणीकरण चरण में नहीं होता है दिखाया गया है लॉगिन शीघ्र।

मुझे लगता है कि ऐप्पल को भविष्य में रिलीज में इस बग को ठीक करना होगा।

संपादित करें: आईओएस 7.0.3 में अपग्रेड करने के बाद मूल प्रमाणीकरण अचानक होम स्क्रीन वेब ऐप मोड में फिर से काम करना शुरू कर दिया। लॉगिन प्रॉम्प्ट प्रदर्शित होता है और सब कुछ अपेक्षित के रूप में काम करता है।

3

मेरी कंपनी आईओएस 6 के साथ शुरू होने वाली आखिरी गिरावट में भाग गई, और हम यह पता लगाने में सक्षम हैं कि यह अपनी सुरक्षा "एन्हांसमेंट्स" के हिस्से के रूप में एक असली ऐप्पल सफारी बग है। तर्क से उनके लिए कोई वास्तविक स्पष्टीकरण नहीं है, लेकिन यहां हम डीबग और पैकेट स्नीफर्स में जो देखते हैं वह है।

सामान्य ऑपरेशन में, सफ़ारी ब्राउज़र किसी GET पर सर्वर से एक पृष्ठ (या पेज में एक वस्तु) का अनुरोध करेंगे। यदि उस संपत्ति को एक्सेस कंट्रोल लिस्ट से सुरक्षित किया गया है, तो हमारे मामले अपाचे बेसिक ऑथ में, और सत्र में उस मेजबान पर यह पहला अनुरोध है, सर्वर क्लाइंट (ब्राउज़र) को इंगित करने वाले 401 HTTP प्रतिक्रिया शीर्षलेख के साथ प्रतिक्रिया देगा इसे फिर से अनुरोध करने की आवश्यकता है, इस बार एक मूल लेख शीर्षलेख जोड़ना जिसमें प्राधिकरण प्रमाण-पत्र हैं। ब्राउज़र तब उपयोगकर्ता को एक लॉगिन संवाद प्रस्तुत करता है, जहां वे उपयोगकर्ता दर्ज कर सकते हैं और प्रमाण-पत्र पास कर सकते हैं, और या तो अनुरोध सबमिट या रद्द कर सकते हैं। जमा करने पर, ग्राहक लेख शीर्षलेख में उन प्रमाण-पत्रों के साथ दोबारा अनुरोध करता है।

प्रमाण पत्र मानते हुए दूसरे जीईटी अनुरोध पर स्वीकार किया जाता है, उचित संपत्ति प्रतिक्रिया पर वापस कर दी जाएगी, और ब्राउज़र में दस्तावेज़ शेष पृष्ठ लोड करने के साथ आगे बढ़ेगा (माना जाता है कि यह आपके द्वारा अनुरोधित एक पृष्ठ था)। यदि आपके पास एक अलग मेजबान पर मौजूद संपत्तियां एम्बेड की गई हैं, और उस होस्ट को उस संपत्ति के प्रमाणीकरण की आवश्यकता है, तो पेज लोड होने पर प्रक्रिया को दोहराया जाता है।

यहाँ जहां यह टूट जाता है। यदि आप एक ही पृष्ठ पर 2 से अधिक होस्टों से ऑब्जेक्ट्स पर कॉल एम्बेड करते हैं, जिसके लिए मूल प्रमाणीकरण की आवश्यकता होती है, तो उस पृष्ठ पर तीसरा प्रमाणीकरण संकेत दबा दिया जाता है, इसलिए ब्राउजर हमेशा के लिए एक संकेत पर प्रमाण-पत्र दर्ज करने का इंतजार कर रहा है जिसे आप कभी नहीं देखते । आपका सफारी ब्राउज़र अब उस स्टॉल प्रमाणीकरण प्रॉम्प्ट पर लटका हुआ है, इस पर और किसी भी अन्य टैब पर, फिर से लोड पर भी, और आपको तब तक एक और प्रॉम्प्ट नहीं मिलेगा जब तक कि आप अपने ब्राउज़र को हार्ड-क्लोज़ न करें या अपने डिवाइस को पुनरारंभ न करें।

यह क्रोम, सिर्फ सफारी को प्रभावित नहीं करता है, और यह आईओएस 6 या बाद में आईफोन और आईपैड दोनों पर है। मेरे पास इस लेखन (7.0.6) के रूप में नवीनतम आईओएस संस्करण है, और समस्या अभी भी वहां है।

हमारे पास पिछले साल एक कामकाज था, जहां हम एक आंतरिक पृष्ठ बनाते थे जिसमें प्रत्येक एम्बेडेड होस्ट की एक सरणी थी, जिसे हम उस मेजबान के स्थान पर favicon.ico पर कॉल एम्बेड करने वाले आईफ्रेम के माध्यम से लूप करेंगे । यह हाल ही में काम करता है, जहां अब, शायद आईओएस 7 फ्रीजिंग पृष्ठभूमि टैब की सुविधा के कारण, ऑथ प्रॉम्प्ट फिर से जमे हुए हैं।

यहाँ JavaScript का नमूना था:

hosts=["store","profile","www","secure-store","images","m","modules"]; 
devhost=location.hostname; 
var i=0; 
while (hosts[i]) 
{ 
newhost=devhost.replace('store.mydomain',hosts[i]+'.mydomain'); 
document.write("<iframe Xhidden seamless=seamless width=0 height=0 src=http://"+newhost+"/favicon.ico><img height='16' width='20' alt='NOT' title='NOT AUTHENTICATED' src=http://"+newhost+"/favicon.ico> Authenticated on "+newhost+"</a></br></iframe>"); 
document.write("<img height='16' width='20' alt='NOT' title='NOT AUTHENTICATED' src="+(newhost.indexOf('secure')>0?'https://':'http://')+newhost+"/favicon.ico> Authenticated on "+newhost+"</a></br>"); 
i++; 
} 

दस्तावेज़.लिखें एक दृश्य संकेत जिनमें से होस्ट करता है, प्रमाणीकृत किया गया है के रूप में अपने फ़ेविकॉन अब प्रदर्शित किया जाता है देना होगा में दूसरे सेट। यह आपको यह भी बताता है कि कौन सा होस्ट रुक सकता है, क्योंकि इसका आइकन गुम है।

के बाद से इस समाधान का iOS 7 पर काम बंद कर दिया, केवल बोझिल समाधान हमारे पास पहले से खुला करने के लिए पसंदीदा आइकन (URL में सीधे) से प्रत्येक के लिए एक अलग टैब, प्रमाणन दर्ज करते हैं, वापस जाने के लिए, अगले करने के लिए जाना है सूची में से एक, और तब तक दोहराएं जब तक कि आपने पृष्ठ पर उपयोग किए गए सभी होस्टों के लिए सभी ऑथ क्रेडेंशियल कैश नहीं किए हैं। उस बिंदु पर, आप मूल पृष्ठ लोड कर सकते हैं क्योंकि आपके क्रेडिट अब कैश किए गए हैं। क्रूड, और एक अंतिम उपभोक्ता के लिए पूरी तरह से अनुचित, लेकिन सार्वजनिक सीडीएन के पीछे मौजूद साइटों की जांच के लिए हमें क्या करना है, क्योंकि हमें एसीएल के साथ उस विकास स्थल पर संपत्तियों की रक्षा करने की आवश्यकता है।

आज तक, हम अभी भी एक बेहतर कामकाज का पता लगा रहे हैं। एंड्रॉइड, विंडोज, या किसी अन्य आईओएस पर कोई मुद्दा नहीं है।

नौकरियां जिंदा होने पर निश्चित रूप से बेहतर काम किया।

आशा है कि इनमें से कुछ मदद करता है।

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