Compare View
Commits (2)
-
авторизация пользователей
Showing
4 changed files
Show diff stats
1 | +<?php | |
2 | + | |
3 | +namespace common\models; | |
4 | + | |
5 | +use Yii; | |
6 | + | |
7 | +/** | |
8 | + * This is the model class for table "social". | |
9 | + * | |
10 | + * @property integer $social_id | |
11 | + * @property string $social_name | |
12 | + * @property integer $social_user_id | |
13 | + * @property integer $user_id | |
14 | + */ | |
15 | +class Social extends \yii\db\ActiveRecord | |
16 | +{ | |
17 | + /** | |
18 | + * @inheritdoc | |
19 | + */ | |
20 | + public static function tableName() | |
21 | + { | |
22 | + return 'social'; | |
23 | + } | |
24 | + | |
25 | + /** | |
26 | + * @inheritdoc | |
27 | + */ | |
28 | + public function rules() | |
29 | + { | |
30 | + return [ | |
31 | + [['social_user_id', 'user_id'], 'integer'], | |
32 | + [['social_name'], 'string', 'max' => 255] | |
33 | + ]; | |
34 | + } | |
35 | + | |
36 | + /** | |
37 | + * @inheritdoc | |
38 | + */ | |
39 | + public function attributeLabels() | |
40 | + { | |
41 | + return [ | |
42 | + 'social_id' => Yii::t('app', 'Social ID'), | |
43 | + 'social_name' => Yii::t('app', 'Social Name'), | |
44 | + 'social_user_id' => Yii::t('app', 'Social User ID'), | |
45 | + 'user_id' => Yii::t('app', 'User ID'), | |
46 | + ]; | |
47 | + } | |
48 | +} | ... | ... |
No preview for this file type
No preview for this file type
frontend/controllers/SiteController.php
... | ... | @@ -20,6 +20,8 @@ use common\models\User; |
20 | 20 | use yii\helpers\VarDumper; |
21 | 21 | use common\models\Page; |
22 | 22 | use frontend\models\Option; |
23 | +use common\models\Social; | |
24 | + | |
23 | 25 | |
24 | 26 | /** |
25 | 27 | * Site controller |
... | ... | @@ -101,8 +103,13 @@ class SiteController extends Controller |
101 | 103 | */ |
102 | 104 | public function actionLogin() |
103 | 105 | { |
106 | + | |
107 | + // creat new model table Social and new model User | |
108 | + $social = new Social(); | |
109 | + $user = new User(); | |
104 | 110 | |
105 | 111 | $serviceName = Yii::$app->getRequest()->getQueryParam('service'); |
112 | + | |
106 | 113 | if (isset($serviceName)) { |
107 | 114 | /** @var $eauth \nodge\eauth\ServiceBase */ |
108 | 115 | $eauth = Yii::$app->get('eauth')->getIdentity($serviceName); |
... | ... | @@ -111,11 +118,24 @@ class SiteController extends Controller |
111 | 118 | |
112 | 119 | try { |
113 | 120 | if ($eauth->authenticate()) { |
114 | -// var_dump($eauth->getIsAuthenticated(), $eauth->getAttributes()); exit; | |
115 | - | |
116 | 121 | $identity = User::findByEAuth($eauth); |
117 | 122 | Yii::$app->getUser()->login($identity); |
118 | 123 | |
124 | + //Save date get social network in database | |
125 | + if (! $social::find()->where(['social_user_id' => $identity[profile][id], 'social_name' => $identity[profile][service]])->exists()) { | |
126 | + $name = explode(' ',$identity[profile][name]); | |
127 | + $user->firstname = $name[0]; | |
128 | + $user->lastname = $name[1]; | |
129 | + $user->id_system_date = date("d.m.y.H:i:s"); | |
130 | + $user->save(); | |
131 | + $social->social_name = $identity[profile][service]; | |
132 | + $social->social_user_id = $identity[profile][id]; | |
133 | + $social->user_id = $user->id; | |
134 | + $social->validate(); | |
135 | + $social->errors; | |
136 | + $social->save(); | |
137 | + } | |
138 | + | |
119 | 139 | // special redirect with closing popup window |
120 | 140 | $eauth->redirect(); |
121 | 141 | } |
... | ... | @@ -170,7 +190,6 @@ class SiteController extends Controller |
170 | 190 | */ |
171 | 191 | public function actionContact() |
172 | 192 | { |
173 | - | |
174 | 193 | //Yii::$app->user->logout(); |
175 | 194 | $identity = Yii::$app->getUser()->getIdentity(); |
176 | 195 | var_dump($identity[profile]); | ... | ... |