public function oAuthSuccess($client) { $info = $client->api('/me?fields=id,name,email,birthday,gender,website,link,about', 'GET'); $exist_user_id = FacebookLogin::getExistUserId($info['id']); if ($exist_user_id != "") { $identity = User::findOne(['id' => $exist_user_id]); \Yii::$app->user->login($identity, 3600 * 24 * 30); $this->redirect('/id' . $exist_user_id); } else { $locale = $client->api('/me?fields=locale', 'GET')['locale']; $location_work_education = $client->api('/me?locale=' . $locale . '&fields=work,education{school},location', 'GET'); $name = $info['name']; $email = $info['email']; $bday = explode("/", $info['birthday']); $bday = $bday[2] . "-" . $bday[0] . "-" . $bday[1]; // Стать $sex = $info['gender'] == 'male' ? 2 : 1; // Місто $city = $location_work_education['location']['name']; // Країна if ($location_work_education['location']['id']) { $country = FacebookLogin::getUserCountry($locale, $location_work_education['location']['id'], $client); } else { $country = ""; } // Робота $work = FacebookLogin::getUserWork($location_work_education['work']); // Освіта $education = FacebookLogin::getUserEducation($location_work_education['education']); // Сайт $site = $info['website']; // Фейсбук сторінка $fb = $info['link']; // Аватар FacebookLogin::copyUserAvatar($info['id']); \Yii::$app->db->createCommand("\n INSERT INTO user (name, email, bday, sex, country, city, work, education, site, fb, avatar, rating, created_at, facebook_id)\n VALUES ('{$name}', '{$email}', '{$bday}', '{$sex}', '{$country}', '{$city}', '{$work}', '{$education}', '{$site}', '{$fb}', 'fb_user_" . $info['id'] . ".jpg', 1, '" . time() . "', '" . $info['id'] . "')\n ")->execute(); $user_id = \Yii::$app->db->getLastInsertID(); $identity = User::findOne(['id' => $user_id]); \Yii::$app->user->login($identity); User::setDefaultPrivacy($user_id); Album::createAlbum($user_id); $this->redirect("/id" . $user_id); } }
public function actionSignup() { if (!Yii::$app->user->isGuest) { return $this->redirect('/id' . Yii::$app->user->getId()); } $model = new SignupForm(); if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); } if ($model->load(Yii::$app->request->post())) { if ($user = $model->signup()) { $hash = $user->email . $user->password; for ($i = 0; $i < 13; ++$i) { $hash = sha1(md5($hash) . $user->email . sha1($user->password)); } $text = 'Здравствуйте! Поздравляем Вас с регистрацией на www.fotonastiya.com' . '<br>'; $text .= 'Чтобы подтвердить регистрацию, перейдите по этой ссылке, пожалуйста:'; $text .= '<a href="http://fotonastiya.com/activate/' . $user->getId() . '/' . $hash . '">http://fotonastiya.com/activate...</a>' . '<br>'; $text .= 'Вы получили это сообщение, потому что зарегистрировали свой email на сайте www.fotonastiya.com' . '<br>'; $text .= 'Если данное письмо попало к Вам по ошибке, проигнорируйте его, пожалуйста, и примите наши извинения.' . '<br>'; $text .= 'С наилучшими пожеланиями, администрация сайта www.fotonastiya.com' . '<br>'; Yii::$app->mailer->compose()->setFrom('*****@*****.**')->setTo($user->email)->setSubject('Реєстрація на сайті fotonastiya.com')->setTextBody($text)->setHtmlBody($text)->send(); User::setStatus($user->getId(), User::STATUS_NOT_ACTIVATED); User::setActivateKey($user->getId(), $hash); User::addRating($user->getId(), 1 + mt_rand() % 100000000.0 / 10000000000000.0); User::setDefaultPrivacy($user->getId()); Album::createAlbum($user->getId()); return $this->redirect('user/success'); } } return $this->render('signup', ['model' => $model]); }