Задать вопрос
@YakushinIlya

Почему Laravel не авторизирует пользователя после регистрации?

Здравствуйте!
Делаю собственную регистрацию и авторизацию через AJAX но после регистрации не происходит авторизация. Ошибок не выдает но и не авторизирует. Что я делаю не так? Расскажите пожалуйста как проще решить эту проблему.

Маршруты api.php
Route::group(['namespace' => 'Auth'], function() {
    Route::post('/register', 'RegisterController@ajaxRegister')->name('register');
    Route::post('/login', 'LoginController@ajaxLogin')->name('login');
});


Метод в который летят все данные из формы регистрации:
protected function ajaxRegister(Request $request)
    {
        $validator = $this->validator($request->all());
        if(!$validator->fails()){
            if($this->create($request->all())){
                if(Auth::attempt([
                    'login' => $request->all()['login'],
                    'password' => $request->all()['password'],
                ], true)){
                    return response()->json([
                        'code' => 'success',
                        'url' => route('profile'),
                        'message' => config('invest.register.success')
                    ]);
                }
            }
            return response()->json([
                'code' => 'danger',
                'message' => config('invest.register.error')
            ]);
        }

        foreach($validator->errors()->all() as $mess){
            $this->messError .= $mess.'<br>';
        }
        return response()->json([
            'code' => 'danger',
            'message' => $this->messError
        ]);
    }


JS обработка и сам запрос AJAX:
$("form.registerForm").on("submit", function(e){
    e.preventDefault();
    var resultData = validationRegister(e);
   if(typeof resultData === 'object'){
       $.ajax({
           url: e.target.action,
           type: e.target.method,
           dataType: 'json',
           data: resultData,
           headers: {
               'X-CSRF-Token': e.target._token.value
           },
           beforeSend: function(){
               $("#resultRegister").html("<p style='text-align:center; color:#bb0000;'>Загрузка...</p>");
           },
           success: function (data) {
               $("#resultRegister").html('<div class="alert alert-'+data.code+'">'+data.message+'</div>');
               console.log(data);
               if(data.code=='success'){
                   location.replace(data.url);
               }
           },
           error: function (msg) {
               $("#resultRegister").html('<div class="alert alert-danger">'+msg.responseJSON.message+'</div>');
               console.log(msg);
           }
       });
   }
});
  • Вопрос задан
  • 286 просмотров
Подписаться 1 Простой 10 комментариев
Пригласить эксперта
Ваш ответ на вопрос

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

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