public function actionOauthSuccess() { /* @var $modelUser \app\modules\account\models\User */ $auth = Yii::$app->session->get('user.auth'); Yii::$app->session->remove('user.auth'); if (empty($auth)) { return $this->goHome(); } // Đã đăng ký OAuth $modelUserOauth = User::findByOpenId($auth['uid'], $auth['provider']); if ($modelUserOauth !== null) { if (($modelUser = User::findByEmail($modelUserOauth->email)) !== null) { Yii::$app->user->login($modelUser); return $this->goHome(); } } // Chưa đăng ký OAuth -> Kiểm tra email tồn tại hay chưa if ($auth['email'] != '') { $modelUserByEmail = User::findByEmail($auth['email']); if ($modelUserByEmail != null) { if (empty($modelUserByEmail->display_name)) { $modelUserByEmail->display_name = $auth['name']; } if (empty($modelUserByEmail->first_name)) { $modelUserByEmail->first_name = $auth['firstname']; } if (empty($modelUserByEmail->last_name)) { $modelUserByEmail->last_name = $auth['lastname']; } $modelUserByEmail->openids = [$auth['provider'] => $auth['uid']]; $modelUserByEmail->save(); Yii::$app->user->login($modelUserByEmail); return $this->goHome(); } } // // Chuyen sang trang dang ky account // return $this->redirect(['/account/frontend/registration/register', 'oauth' => StringHelper::encrypt($auth)]); // Đăng ký tự động user mới (1 vai truong hop thay ko on lam) $model = new User(); $model->email = $auth['email']; $model->display_name = $auth['name']; $model->first_name = $auth['firstname']; $model->last_name = $auth['lastname']; $model->openids = [$auth['provider'] => $auth['uid']]; $model->status = User::STATUS_ACTIVE; if ($model->save()) { Yii::$app->user->login($model); } return $this->goHome(); }
public function actionSuccess() { /* @var $user \app\modules\account\models\User */ $auth = Yii::$app->session->get('user.auth'); Yii::$app->session->remove('user.auth'); if (empty($auth)) { return $this->goHome(); } $user = User::findByOpenId($auth['uid'], $auth['provider']); if ($user !== null) { Yii::$app->user->login($user); return $this->goHome(); } var_dump($auth); // Đăng ký account //return $this->redirect(['register', 'oauth' => $this->_encrypt($auth)]); }