當前位置: 首頁>>代碼示例>>PHP>>正文


PHP UserInfo::noEmail方法代碼示例

本文整理匯總了PHP中UserInfo::noEmail方法的典型用法代碼示例。如果您正苦於以下問題:PHP UserInfo::noEmail方法的具體用法?PHP UserInfo::noEmail怎麽用?PHP UserInfo::noEmail使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在UserInfo的用法示例。


在下文中一共展示了UserInfo::noEmail方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: actionRennAuth

 /**
  * 處理人人網登錄事宜
  * Enter description here ...
  * @throws CHttpException
  */
 public function actionRennAuth()
 {
     $rennService = new RennService();
     $rennClient = $rennService->getClient();
     // 處理code -- 根據code來獲得token
     if (isset($_REQUEST['code'])) {
         $keys = array();
         // 獲得code
         $keys['code'] = $_REQUEST['code'];
         $keys['redirect_uri'] = Yii::app()->createAbsoluteUrl('/oauth/rennAuth');
         try {
             // 根據code來獲得token
             $token = $rennClient->getTokenFromTokenEndpoint('code', $keys);
         } catch (RennException $e) {
             error_log($e->getTraceAsString());
             throw new CHttpException(403, Yii::t('app', '沒有得到授權,不能訪問'));
             Yii::app()->end();
         }
     }
     // 獲得用戶接口
     $userService = $rennClient->getUserService();
     // 獲得當前登錄的人人用戶信息
     try {
         $rennUser = $userService->getUserLogin();
     } catch (Exception $e) {
         throw new CHttpException(403, Yii::t('app', '沒有得到授權,不能訪問'));
         Yii::app()->end();
     }
     if (isset($rennUser)) {
         //檢查是否為新用戶
         //			$rrOauth = Oauth::model()->find('rrid=:rrid',array('rrid'=>$rennUser['id']));
         $userInfo = UserInfo::model()->findByAttributes(array('rennId' => $rennUser['id']));
         //如果是新用戶,在站內創建一個對應用戶
         if (!$userInfo) {
             $transaction = Yii::app()->db->beginTransaction();
             try {
                 $user = new User();
                 $user->email = 'RRId' . $rennUser['id'] . '@daxidao.com';
                 $user->password = DxdUtil::randCode(32);
                 $user->salt = DxdUtil::randCode(32);
                 $userSaved = $user->validate() && $user->save();
                 $userInfo = new UserInfo();
                 $userInfo->id = $user->getPrimaryKey();
                 $userInfo->email = $user->email;
                 $userInfo->name = $rennUser['name'];
                 $userInfo->addTime = time();
                 $userInfo->rennId = $rennUser['id'];
                 $userInfo->status = 'ok';
                 $userInfoSaved = $userInfo->save();
                 if (!$userSaved || !$userInfoSaved) {
                     Yii::app()->user->setFlash('error', Yii::t('app', '抱歉,創建用戶失敗'));
                     throw new Exception(Yii::t('app', '創建用戶失敗!'));
                 }
                 $transaction->commit();
             } catch (Exception $e) {
                 $transaction->rollback();
                 $this->redirect(Yii::app()->baseUrl);
                 Yii::app()->end();
             }
         }
         //站內用戶登錄
         /*		$identity=new UserIdentity($userInfo->email,'somepassword');
         			$identity->authenticate(true);
         
         			if($identity->errorCode===UserIdentity::ERROR_NONE)
         			{
         				//$duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days
         				Yii::app()->user->login($identity, 0);
         				//print_r(Yii::app()->user);
         			}*/
         $user = User::model()->findByAttributes(array('email' => $userInfo->email));
         $user->loginWithoutPassword();
     }
     //如果還沒有填寫email
     if ($userInfo->noEmail()) {
         $this->redirect(array('u/registerOauth'));
         Yii::app()->end();
     }
     Yii::app()->user->setFlash('success', Yii::t('app', '人人網登錄成功!'));
     $this->redirect($this->homePage);
 }
開發者ID:stan5621,項目名稱:eduwind,代碼行數:86,代碼來源:OauthController.php


注:本文中的UserInfo::noEmail方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。