예제 #1
0
 public function successCallback($client)
 {
     $session = Yii::$app->session;
     $attributes = $client->getUserAttributes();
     $email = User::find()->where(['email' => $attributes['email']])->one();
     if ($email) {
         // email, fbid existed, login success
         $fbid = User::find()->where(['fbid' => $attributes['id'], 'email' => $attributes['email']])->one();
         if ($fbid) {
             $active = User::find()->where(['fbid' => $attributes['id'], 'email' => $attributes['email'], 'status' => 1])->one();
             if ($active) {
                 Yii::$app->user->login($active);
             } else {
                 // email existed, redirect to login
                 $session->set('active', 'true');
                 $session->set('email', $attributes['email']);
                 $session->set('fbid', $attributes['id']);
                 $this->successUrl = Yii::$app->urlManager->createAbsoluteUrl(['site/login']);
             }
         } else {
             // email existed, redirect to login
             $session->set('login', '');
             $session->set('email', $attributes['email']);
             $session->set('fbid', $attributes['id']);
             $this->successUrl = Yii::$app->urlManager->createAbsoluteUrl(['site/login']);
         }
     } else {
         // email not exist, redirect to register
         $session->set('login', 'false');
         $session->set('email', $attributes['email']);
         $session->set('fbid', $attributes['id']);
         $session->set('name', $attributes['name']);
         $this->successUrl = Yii::$app->urlManager->createAbsoluteUrl(['site/login']);
     }
 }