Laravel 5.6 не может получить доступ к данным пользователя после входа в систему с помощью Ajax

У меня есть режим входа в систему, и я хочу войти с помощью Ajax в Laravel 5.6. Ajax возвращает мне сообщение «Успех», но когда я обновляю местоположение окна с помощью JS, данные пользователя недоступны из шаблона блейда. Вот мой код

Мой контроллер

  protected function authenticated(Request $request)
{
    $auth = false;

    if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
        $auth = true; // Success
        $request->session()->put('current_user',Auth::user());

    }

    if ($request->ajax()) {
        return response()->json([
            'success' => true,
            'auth' => $auth,
            'intended' => URL::previous()
        ]);
    } else {
        return redirect()->intended(URL::route('contact'));
    }
    return redirect(URL::route('login_page'));
}

Мой Аякс

 $(document).ready(function () {

        var loginForm = $("#loginForm");
        loginForm.submit(function(e){
            e.preventDefault();
            var formData = loginForm.serialize();

            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });

            $.ajax({
                url:"{{ route('ajax_login') }}",
                type:'POST',
                data:formData,
                success:function(data){
                    // console.log(data);
                    window.location.href = '/'
                },
                error: function (data) {
                    console.log('failed');
                }
            });
        });

Мой маршрут

    Route::post('/user-login', 'Auth\LoginController@authenticated')->name('ajax_login');

person Sahib Huseynov    schedule 23.05.2018    source источник
comment
Я предполагаю, что при перенаправлении с помощью JS он не добавляет правильный ответ на запрос.   -  person Sougata Bose    schedule 23.05.2018
comment
Вы имеете в виду данные от current_user?   -  person yrv16    schedule 23.05.2018
comment
На самом деле я хочу использовать раскрывающееся меню, в котором содержится ссылка на учетную запись пользователя, кнопка выхода из системы и изображение пользователя после завершения входа в систему. Без Ajax я могу получить то, что мне нужно, но когда я пытаюсь войти с запросом ajax, это невозможно   -  person Sahib Huseynov    schedule 23.05.2018


Ответы (1)


Это потому, что при обновлении с помощью window.location.reload все файлы javascript будут перезагружены, а переменные очищены. Вы можете хранить свои данные в локальном хранилище window.localStorage.putItem('key', object) или напрямую использовать свои данные с помощью jQuery, это зависит от ваших потребностей.

Надеюсь, это поможет.

person Julien METRAL    schedule 23.05.2018