VueJS - JWT Auth - проблема с перенаправлением

Я кодирую POS-систему на laravel и vuejs. Для входа я использую JWT-auth. Теперь, если уже существует "кассовый сеанс", системе необходимо перенаправить на vue-route /Dashboard, если нет, вам нужно перенаправить на /Cash. Сейчас пробовал разные вещи, но ничего не работает. Он всегда перенаправляет на /Cash.

у кого-нибудь есть решение?

methods: {
        login() {
            let app = this;
            this.$auth.login({
                params: {
                    username: app.username,
                    password: app.password
                },
                success: function () {
                },
                error: function (resp) {
                    alert('Error: ' + resp.response.data.msg)
                },
                redirect: app.redirectURL(),
                fetchUser: true
            });
        },

        setText(gebruiker) {
            this.buttonText = gebruiker;
            this.username = gebruiker;
        },

        redirectURL () {
            let cashActive = false;
            axios.get('cash/active').then(response => {
                console.info(response.data.active);
                cashActive = response.data.active;
            });
            console.info("Cash Active: " + cashActive);
            if (!cashActive) {
                console.info("Return /Cash");
                return "Cash";
            } else {
                console.info("Return /dashboard");
                return "/Dashboard";
            }
        }
    }

Обновлено: Я пробовал асинхронную функцию, но перенаправление по-прежнему не работает. Моя страница не перенаправляет. Должна быть проблема с тем, что я возвращаю в функции redirectURL. Кто-нибудь может помочь?

  methods: {
        login() {
            let app = this;
            this.$auth.login({
                params: {
                    username: app.username,
                    password: app.password
                },
                success: function () {
                },
                error: function (resp) {
                    alert('Error: ' + resp.response.data.msg)
                },
                redirect: app.redirectURL(),
                fetchUser: true
            });
        },

        setText(gebruiker) {
            this.buttonText = gebruiker;
            this.username = gebruiker;
        },

        async redirectURL () {
            let cashActive = await axios.get('cash/active').then(response => {
                //console.info(response.data.active);
                return response.data.active;
            });
            console.info("Cash Active: " + cashActive);
            if (!cashActive) {
                console.info("Return /cash");
                return "/cash";
            } else {
                console.info("Return /dashboard");
                return "/dashboard";
            }
        }
    },

}

Возможный дубликат Как мне вернуть ответ от асинхронного вызова?

Phil 03.05.2018 13:38

Ваш if (!cashActive) и следующий код выполняют перед, axios.get завершает

Phil 03.05.2018 13:39
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
379
0

Другие вопросы по теме