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

Почему происходит редирект?

Здравствуйте, у меня в приложении реализована авторизация пользователей. Проблема вот в чем. Когда я заполняю поля формы и жму "Зарегистрироваться", то меня перенаправляет на страницу авторизации. То есть с /register кидает на /login , хотя мне это не нужно и это нигде не указано. Помогите разобраться пожалуйста.
Код компонента Register.vue
<template>
    <div class="container">
        <div class="card card-default">
            <div class="card-header">Регистрация</div>
            <div class="card-body">
                <div class="alert alert-danger" v-if="has_error && !success">
                    <p v-if="error == 'registration_validation_error'">Ошибка валидации. Исправьте данные в соответствии с подсказками.</p>
                </div>
                <v-alert v-if="success"
                        text
                        color="info"
                >
                    <h3 class="headline">Регистрация почти завершена!</h3>
                    <div>
                        Мы выслали ссылку с подтверждением регистрации на указанный Email.
                    </div>
                </v-alert>
                <form autocomplete="off" @submit.prevent="register" v-if="!success" method="post">
                    <div class="form-group" v-bind:class="{ 'has-error': has_error && errors.email }">
                        <label for="email">E-mail</label>
                        <input type="email" id="email" class="form-control" placeholder="user@example.com" v-model="email" required>
                        <span class="help-block" v-for="(error, index) in errors.email" v-bind:key="index">{{ error }}</span>
                    </div>
                    <div class="form-group" v-bind:class="{ 'has-error': has_error && errors.password }">
                        <label for="password">Пароль</label>
                        <input type="password" id="password" class="form-control" v-model="password" required>
                        <span class="help-block" v-for="(error, index) in errors.password" v-bind:key="index">{{ error }}</span>
                    </div>
                    <div class="form-group" v-bind:class="{ 'has-error': has_error && errors.password }">
                        <label for="password_confirmation">Подтвердите пароль</label>
                        <input type="password" id="password_confirmation" class="form-control" v-model="password_confirmation" required>
                    </div>
                    <div class="container">
                        <div class="row">
                            <v-btn depressed large type="submit">Зарегистрироваться</v-btn>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</template>
<script>
    export default {
        data() {
            return {
                name: '',
                email: '',
                password: '',
                password_confirmation: '',
                has_error: false,
                error: '',
                errors: {},
                success: false,
            }
        },
        methods: {
            register() {
                var app = this
                this.$auth.register({
                    data: {
                        email: app.email,
                        password: app.password,
                        password_confirmation: app.password_confirmation
                    },
                    success: function () {
                        app.success = true
                    },
                    error: function (res) {
                        app.has_error = true
                        app.error = res.response.data.error
                        app.errors = res.response.data.errors || {}
                    }
                })
            }
        }
    }
</script>


Я использую пакет @websanova/vue-auth
Код файла auth.js
import bearer from '@websanova/vue-auth/drivers/auth/bearer'
import axios from '@websanova/vue-auth/drivers/http/axios.1.x'
import router from '@websanova/vue-auth/drivers/router/vue-router.2.x'


const config = {
    auth: bearer,
    http: axios,
    router: router,
    tokenDefaultName: 'laravel-vue-spa',
    tokenStore: ['localStorage'],
    rolesVar: 'role',
    registerData: {url: 'api/auth/register', method: 'POST'},
    loginData: {url: 'api/auth/login', method: 'POST', redirect: '', fetchUser: true},
    logoutData: {url: 'api/auth/logout', method: 'POST', redirect: '/', makeRequest: true},
    fetchData: {url: 'api/auth/user', method: 'GET', enabled: true},
    refreshData: {url: 'api/auth/refresh', method: 'GET', enabled: true, interval: 30}
}
export default config
  • Вопрос задан
  • 109 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Судя по исходникам:
registerData:       {url: 'auth/register',      method: 'POST', redirect: '/login'},

это дефолтное поведение этой библиотеки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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