थोड़ी देर के लिए इसके साथ खेलने के बाद, मैं अपने स्वयं के प्रश्न का उत्तर देने जा रहा हूं। इस तरह मैं इसे काम करने के लिए बनाता हूं, ताकि आप इसे अपनी आवश्यकताओं के अनुसार बदल सकें।
नोट: मैं साइट नियंत्रक के बजाय उपयोगकर्ता नियंत्रक का उपयोग करता हूं और कृपया संबंधित एक्सटेंशन पृष्ठ में सभी निर्देशों का पालन करें।
आप के रूप में ऊपर संकेत दो प्लग इन का उपयोग करते हैं, तो आप इसे काम करने के लिए अगले क्या करने की जरूरत निम्नलिखित हैं: लेकिन सबसे महत्वपूर्ण कदम 2c कर रहे हैं और 3 (इस कदम गाइड द्वारा एक कदम है), वे दोनों प्लगइन्स के लिए गोंद हैं
1) एक लॉगिन पृष्ठ है जो OpenidSelector का उपयोग करता है। इसे दृश्य/उपयोगकर्ता/login.php
<?php
$this->widget('application.extensions.openidProviders.openidProviders',
array ('options' => array ('lang' => 'en',
// 'demo' => 'js:true',
'cookie_expires' => 6*30,
)));?>
2) ओपनिड चयनकर्ता से चयन को संभालने के लिए सेटअप क्रियाएं रखें। मैंने इसे उपयोगकर्ता नियंत्रक में रखा है।
ए) मुख्य कॉन्फ़िगरेशन फ़ाइल में।
'components'=>array(
'user'=>array(
// enable cookie-based authentication
'allowAutoLogin'=>true,
'loginUrl' => array('/user/login'), //change the default login page
),
ख) userController फ़ाइल में, लॉगिन जोड़ सकते हैं और प्रमाणित कार्यों
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('login', 'authenticate'),
कार्रवाई # के लिए कोड 1 actionLogin - इस लॉगिन दृश्य पेज को गति प्रदान करने के लिए है।
public function actionLogin()
{
// display the login form
$this->render('login',array());
}
ग) कोड कार्रवाई # 2 actionAuthenticate के लिए - LOID अनुदेश पृष्ठ से भी संशोधित कोड, इस जब एक OpenIDProvider प्रवेश पृष्ठ में चुना जाता है संभाल करने के लिए है।
public function actionAuthenticate()
{
// Put the Simple usage: code on
// http://www.yiiframework.com/extension/loid here:
// Code from loid Simple usage page.
// START HERE
$loid = Yii::app()->loid->load();
if (!empty($_GET['openid_mode'])) {
if ($_GET['openid_mode'] == 'cancel') {
$err = Yii::t('core', 'Authorization cancelled');
} else {
try {
echo $loid->validate() ? 'Logged in.' : 'Failed';
} catch (Exception $e) {
$err = Yii::t('core', $e->getMessage());
}
}
if(!empty($err)) echo $err;
} else {
// **NOTE:Comment out this line from the loid sample page**
// $loid->identity = "http://my.openid.identifier"; //Setting identifier
// this openid_identifier is need after you click the openselector
$loid->identity = $_GET['openid_identifier']; // CHANGE HERE
$loid->required = array('namePerson/friendly', 'contact/email'); //Try to get info from openid provider
$loid->realm = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'];
$loid->returnUrl = $loid->realm . $_SERVER['REQUEST_URI']; //getting return URL
if (empty($err)) {
try {
$url = $loid->authUrl();
$this->redirect($url);
} catch (Exception $e) {
$err = Yii::t('core', $e->getMessage());
}
}
}
// Code from loid Simple usage page.
// END HERE
}
3)
बदलें
form action="examples/consumer/try_auth.php" method="get" id="openid_form"
form action="authenticate" method="get" id="openid_form"
को openidProviders/विचारों/मुख्य-en.php में प्रमाणित करने के लिए कार्रवाई URL को परिवर्तित करें कि यह होना चाहिए । विफलता केस का परीक्षण नहीं किया है, केवल Google लॉगिन के साथ परीक्षण किया गया है।
क्या आपको दोनों का उपयोग करने की आवश्यकता है? – BlueDolphin
हां, उन दोनों का उपयोग करें – Alocus