public function actionOpenID() { $openid = new EOpenID(); if (isset($_POST['openid_identifier']) && $_POST['openid_identifier'] === 'facebook') { $this->redirect(array('login/facebook')); } else { if (isset($_POST['openid_identifier']) && $_POST['openid_identifier'] === 'linkedin') { $this->redirect(array('login/linkedin')); } } if (!isset($_GET['openid_mode'])) { if (isset($_POST['openid_identifier'])) { //echo $_POST['openid_identifier']; $openid->required = array('namePerson/friendly', 'namePerson/first', 'namePerson/last', 'contact/email'); $openid->authenticate($_POST['openid_identifier']); } } elseif (isset($_GET['openid_mode'])) { if (isset($_GET['returnurl'])) { $returnurl = $_GET['returnurl']; } else { $returnurl = ''; } if (isset($_POST['Member'])) { $memberdata = Member::model()->getMemberById($_POST['Member']['memberid']); $this->actMemberinfo($memberdata, '', '', '', 'openid', $returnurl); } else { if ($openid->validate()) { $userdata = $openid->getAttributes(); $userinfo = $this->stripid($openid->id); $memberdata = Member::model()->getMemberByOauth($userinfo['id']); $this->actMemberinfo($memberdata, $userinfo, $userdata, '', 'openid', $returnurl); } } } }
/** * Login using OpenID */ public function actionOpenIDLogin() { $openid = new EOpenID(); if (!isset($_GET['openid_mode'])) { if (isset($_POST['openid_identifier'])) { $openid->authenticate($_POST['openid_identifier']); } } elseif (isset($_GET['openid_mode'])) { $openid->validate(); Yii::app()->user->login($openid); /* Check if user has fill in details before if has redirect to last page else redirect to new user page */ //$this->render('loggedin',array('openid'=>$openid)); $openIdUrl = $openid->getIdentity(); if ($this->openidUrlFound($openIdUrl)) { $userDetails = Userdetails::model()->getUserByOpenIdUrl($openIdUrl); $openid->setState("name", $userDetails->username); Yii::app()->user->login($openid); $this->redirect(Yii::app()->homeUrl); } else { Yii::app()->user->login($openid); //$this->redirect(array('newuser')); $this->redirect(array('userdetails/create')); } return; } $this->render('openIDLogin'); }