2010-05-04 14 views
8

मेरे पास एक टेबल "उपयोगकर्ता" है और मैं अपने आगंतुकों को अपने ओपनआईडी खाते से लॉगिन करने में सक्षम बनाना चाहता हूं। इसके लिए मैं OpenId Component for Cakephp का उपयोग करता हूं और यह ठीक काम करता है (जब मैं Google यूआरएल के साथ लॉगिन करता हूं तो मुझे "सफलतापूर्वक प्रमाणित!" अधिसूचना मिलती है)।ओपनआईडी और उपयोगकर्ता प्रमाणीकरण के साथ केकफ़्प

लेकिन अब मैं फंस गया हूं क्योंकि मुझे नहीं पता कि वहां से कैसे जाना है।

  • मैं जो "oid_associations" तालिका (मैं mysql डेटाबेस में सभी OpenId बातचीत बचाने के लिए) में एक नई प्रविष्टि है प्रत्येक उपयोगकर्ता के लिए एक उपयोगकर्ता-एंट्री बनाने के लिए है?
  • क्या मुझे लॉगिन के बाद उपयोगकर्ता को प्रमाणीकृत करना है (या ओपनआईडी-घटक स्वचालित रूप से ऐसा कर रहा है?)।
  • क्या मैं अवधारणा को पूरी तरह गलत समझ रहा हूं?

उत्तर

7

नहीं, आपको "oid_associations" तालिका तक पहुंचने की आवश्यकता नहीं है, यह एक सारणी है जिसका उपयोग केवल ओपनआईडी लाइब्रेरी द्वारा किया जाता है।

इसके बजाय, आप यह पता लगाने के लिए identity_url का उपयोग कर सकते हैं कि यह एक नया उपयोगकर्ता है या नहीं। यदि ऐसा है, तो आप अपने "उपयोगकर्ता" तालिका में एक प्रविष्टि बना सकते हैं। उदाहरण के लिए (यह मानते हुए अपने "उन" तालिका एक "openid" स्तंभ है):

$response = $this->Openid->getResponse($returnTo); 

if ($response->status == Auth_OpenID_SUCCESS) { 
    $user = $this->User->findByOpenid($response->identity_url); 
    if ($user) { 
     // existing user 
    } else { 
     // new user -> create user entry in the database 
    } 
} 

मुझे यकीन है कि मैं अपने दूसरे प्रश्न सही ढंग से समझ नहीं हूँ। अगर कोई ओपनआईडी के साथ लॉग इन करता है और आपको Auth_OpenID_SUCESS प्रतिक्रिया मिलती है, तो इसका मतलब है कि इस उपयोगकर्ता को सफलतापूर्वक प्रमाणीकृत किया गया था। आप अपने आवेदन में इस जानकारी का उपयोग कैसे करते हैं आप पर निर्भर है।

मुझे आशा है कि यह आपके प्रश्नों का उत्तर देगा।

+0

धन्यवाद कि वास्तव में मेरी मदद की और अब मैं यह भी समझता हूं कि उपयोगकर्ता को प्रमाणीकृत करने के लिए (क्रमशः कहां)। –

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