2010-09-22 4 views
8

मैं ओपनआईडी तर्क के लिए नया हूं। मैं केनबेकर द्वारा केकेपीएचपी के लिए ओपनआईडी घटक का उपयोग कर रहा हूं, जेनरेन द्वारा PHP ओपनआईडी लाइब्रेरी के साथ।क्या प्रदाता से ओपनआईडी इंफोस लाने का कोई बेहतर तरीका है?

यह सब ठीक काम कर रहा है, लेकिन मुझे प्रदाता और विधि (रेग बनाम कुल्हाड़ी) के आधार पर उपयोगकर्ता सूचनाओं को पुनर्प्राप्त करने का एक संपूर्ण तरीका नहीं मिला। तो यही वह है जिसके साथ मैं आया:

if ($axResponse) { 
    if (is_array($a = $axResponse->get('http://axschema.org/contact/email'))) { 
     $user_record['email'] = $a[0]; 
     if (is_array($b = $axResponse->get('http://axschema.org/namePerson'))) { 
      $user_record['nickname'] = $b[0]; 
     } 
    } else if (is_array($a = $axResponse->get('http://schema.openid.net/contact/email'))) { 
     $user_record['email'] = $a[0]; 
     if (is_array($b = $axResponse->get('http://schema.openid.net/namePerson'))) { 
      $user_record['nickname'] = $b[0]; 
     } 
    } 
} else if ($sreg) { 
    if (isset($sreg['email'])) { 
     $user_record['email'] = $sreg['email']; 
    } 
    if (isset($sreg['nickname'])) { 
     $user_record['nickname'] = $sreg['nickname']; 
    } 
} 

हालांकि मैंने Google के साथ सफलतापूर्वक इसका परीक्षण किया, याहू! और एओएल ओपनआईडी, मुझे यकीन है कि मैं अन्य/छोटे प्रदाताओं के साथ परेशानी में भाग जाऊंगा। क्या एक ही परिणाम प्राप्त करने के लिए एक बेहतर और अच्छा तरीका है? यह विशेष रूप से दोषपूर्ण लगता है कि अगर मैं अन्य वैकल्पिक फ़ील्ड लाने के लिए प्रयास करें ...

उत्तर

2

कृपया में रखना ध्यान रखें कि ओपनआईडी उपयोगकर्ता प्रमाणीकरण के लिए एक मानक है, लेखक के लिए नहीं डेटा पहुंच के लिए zation। आप स्वाभाविक रूप से ओपनआईडी का उपयोग कर कुछ उपयोगकर्ता जानकारी प्राप्त कर सकते हैं, लेकिन यह प्रोटोकॉल का प्राथमिक इरादा नहीं है। OAuth प्रमाणीकरण के लिए मानक है और यदि आप उपयोगकर्ता डेटा प्राप्त करना चाहते हैं तो आप इसके साथ शुरुआत करना चाहेंगे।

+0

मैं इस सवाल को बंद करने और आपके उत्तर को स्वीकार करने के लिए पूरी तरह से सहमत हूं। सौभाग्य से, तब से चीजें काफी विकसित हुई हैं, ओएथ 2 समर्थन प्राप्त करने के साथ, और आजकल, मैं केवल इसका उपयोग करूँगा, और अधिकांश उपयोग मामलों के लिए ओपनआईडी के साथ किया जाएगा। –

0

खैर मैं कर रहा हूँ ... मैं माफी चाहता "CakePHP के लिए OpenID घटक" के बारे में ज्यादा पता नहीं है, लेकिन मैं lightopenid साथ काम किया है और यह खुला स्रोत भी है ..

चेक इस बाहर: http://code.google.com/p/lightopenid/updates/list

मैं इस कई बार साथ काम किया है .. और यह अच्छा है .. मुझे आशा है कि इस मदद करता है ...

+0

दुर्भाग्य से यह मेरी बहुत मदद नहीं करता है, क्योंकि सबकुछ पहले से ही ठीक काम करता है। मैं प्रतिक्रिया से निपटने के लिए एक शानदार तरीका ढूंढ रहा हूं, जो इस पुस्तकालय और इसके दस्तावेज से ढंका नहीं है ... –

+0

कोई समस्या नहीं, Daniem, यह सिर्फ विचार था, प्रतिक्रिया के लिए धन्यवाद ... –

+0

सैद्धांतिक रूप से, आप केवल '$ * GET + $ _POST' को प्रतिस्थापित करने के लिए, LightOpenID से' get * विशेषताएँ() 'फ़ंक्शंस की प्रतिलिपि बना सकते हैं। – Mewp

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