@frmax
человек

Yii2 авторизация не работает почему?

Привет, не могу понять почему авторизация не проходит....

Значит ввожу данные в форму...отправляю данные
var loginis = (function () { 
    var psw = $("#password2").val();
    var email = $("#mail2").val();
    
    $.ajax({
        type: 'POST',
        url: "site/loginis",
        data: {'login':email, 'password':psw,},
        dataType: "json",
        success: function(data){
            if (data.success == true){
                window.location.href = data.redirect_uri;
            } else alert('Ошибка');
        },
        error: function(e) {
            console.log(e);
        }
    });
});


в контроллере пыймал
public function actionLoginis(){
        if (Yii::$app->request->isAjax) {
            //ищем пользователя с таким psw and login
            $login = Yii::$app->request->post('login');
            $psw = Yii::$app->request->post('password');
            
            
            if($data = Users::findUserByAouth(array('login'=>$login, 'password'=>$psw, ))){
                //вот тут как раз и проблема не знаю - как авторизоваться
                $user = Users::findByEAuth($data);
                return json_encode(array("success" => true, "redirect_uri" => 'index'));
            }  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);
   }
  • Вопрос задан
  • 3425 просмотров
Решения вопроса 1
fornit1917
@fornit1917
Вы бы хоть написали - как именно не работает, что происходит?

А вообще вижу как минимум две проблемы:
1. Вы шлете POST-запрос аяксом без CSRF-токена. А проверку CSRF-токена в контроллере отключили?
2. Вы делаете сомнительный велосипед, хотя в Yii уже есть нормальные средства для аутентификации (да, то что вы делаете - это называется не авторизация, а аутентификация).
Используйте стандартные средства: https://github.com/yiisoft/yii2/blob/master/docs/g...
Не пишите велосипеды.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы