Laravel 5.8 Перенаправление после входа в систему

В моем приложении Laravel есть страница входа по умолчанию, а также форма входа в раскрывающемся списке. Поскольку у меня это настроено сейчас, после успешного входа в систему пользователь перенаправляется на страницу индекса, однако, если пользователь использует форму входа в раскрывающемся списке, я хочу, чтобы он оставался на странице, на которой он уже находится.

Есть ли лучшая практика, чем добавление отдельного метода для входа в систему через раскрывающийся список?


person Stantastic    schedule 04.07.2019    source источник
comment
не могли бы вы объяснить немного больше. Думаю, вы знаете о php artisan make:auth   -  person Nipun Tharuksha    schedule 04.07.2019
comment
Я использовал php artisan make:auth и на странице входа по умолчанию после успешного входа в систему пользователь перенаправляется на / index. Однако есть также форма входа в панель навигации, и после входа в систему пользователь также перенаправляется на / index, но я хочу, чтобы он оставался на этой странице.   -  person Stantastic    schedule 04.07.2019
comment
извините, все же ваш вопрос непонятен. Ожидаете ли вы, что пользователь будет на той же странице даже после успешного входа в систему?   -  person Nipun Tharuksha    schedule 04.07.2019
comment
Да, я хочу, чтобы они более или менее перенаправлялись на страницу, на которой они были в момент нажатия кнопки входа в систему   -  person Stantastic    schedule 04.07.2019


Ответы (1)


Вы можете использовать axios или ajax для входа в систему и оставаться на странице.

Пример для axios, в вашем скрипте напишите что-то вроде этого

$("body").on("submit", "#login-form", function (e) {
    var action = $(this).attr("action"); // your login url

    e.preventDefault();

    axios.post(action, $(this).serialize())
     .then(function (response) {
        // do something from the response
        // i.e. display error or update navbar to logged in view
     })
     .catch(function (error) {
        // handle error here
     });
});

Пример для ajax, в вашем скрипте напишите что-то вроде этого

$("#login-form").submit(function(event){
    event.preventDefault(); //prevent default action 
    var post_url = $(this).attr("action"); //get form action url
    var request_method = $(this).attr("method"); //get form GET/POST method
    var form_data = $(this).serialize(); //Encode form elements for submission

    $.ajax({
        url : post_url,
        type: request_method,
        data : form_data,
        beforeSend: function() {
            // show loading or whatever
        },
        success: function(data) {
            // do something from the response
            // i.e. display error or update navbar to logged in view
        },
        error: function(xhr) { // if error occured            
            var status = xhr.statusText;
            var response = JSON.parse(xhr.responseText);

            // handle error here                       
        }
    });
});

В обоих примерах я предполагаю, что у вас будет форма входа с идентификатором login-form.

person raditz farhan    schedule 04.07.2019