У самого сейчас проект учебный RestAPI на Flask + Vue
Тебе нужно в ретурне отдавать JSON и код 200 если всё ОК
В JSON пихнуть токен, юзернаме, роль юзера, и т.д.
Токен, используя Vuex запихнуть в стайт и использовать в запросах
Я использую Vuex. Советую
Про редирект.
<script>
import {mapGetters, mapActions} from 'vuex'
export default {
name: 'login',
data() {
return {
form: {
email: null,
password: null,
}
}
},
// computed: mapGetters(['user/USER_AUTH']),
methods: {
...mapActions({
loginUser: 'user/LOGIN_USER'
}),
submit() {
this.loginUser(this.form)
.then(() => this.$router.push('/'))
.catch(err => console.log(err))
}
}
}
</script>
Т.е. метод отправляет в экшен данные формы.
Экшен Vuex отправляет данные на сервер через API, и т.д.
actions: {
async LOGIN_USER({ commit }, form) {
const response = await axios.post('api/v1/login', form)
const user = await response.data
commit('UPDATE_USER_AUTH', user)
},
Может не самый оптимальный код. Но пока так. Рефакторинг потом устрою.
Запись в локалсторе, что бы не терять данные при перезагрузке страницы.
Мутация:
mutations: {
UPDATE_USER_AUTH(state, user) {
localStorage.token = user.token
localStorage.email = user.email
localStorage.name = user.name
localStorage.role = user.role
state.token = user.token
state.email = user.email
state.name = user.name
state.role = user.role
}