@frmax
человек

Как реализовать Yii AJAX-авторизацию?

Привет, всем!
Значит, делаю авторизацию на сайте... Есть форма, есть данные, которые отправляются.

AJAX-запрос
var loginis = (function () { 
    var psw = $("#password2").val();
    var email = $("#mail2").val();
    
        $.ajax({
            type: 'POST',
            url: "site/loginis",
            data: {'password':psw, 'login':email},
            error: function(e) {
              console.log(e);
            }
        });
});


Контроллер - акшон
public function actionLoginis(){
        if (Yii::$app->request->isAjax) {
            //ищем пользователя с таким psw and login
            if($data = Users::findUserByAouth(Yii::$app->request->post())){
                //нашли авторизуемся...?? 
                return Users::findByEAuth($data);
//                return json_encode(array("data" => $data, "success" => true )); 
            }  else {
               echo json_encode(array('success'=>false));
            }
        }
    }

// сама функция findByEAuth
public static function findByEAuth($data) {
       if (empty($data)) {
                   throw new ErrorException('');
           }

           $id = 'servis-'.$data['id'];
           
           $attributes = array(
                   'id' => $data['id'],
                   'username' => $data['name'],
                   'authKey' => md5($data['id']),
           );
              
            $attributes['profile'] = $data;
            $attributes['profile']['service'] = 'servis';
            Yii::$app->getSession()->set('user-'.$id, $attributes);   
            return new self($attributes);
   }


Использую авторизацию с vk и просто авторизацию.
И получил данные, и сессию записал, но авторизации нет — форма стоит на месте....
Может, вообще все не так делаю? Подскажите как правильно и как сделать чтоб работало? :)
  • Вопрос задан
  • 2764 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы