Я пытаюсь аутентифицировать пользователя с помощью vuejs и паспорта laravel.
Я не могу понять, как отправить несколько параметров мутации vuex с помощью действия.
- хранить -
export default new Vuex.Store({
state: {
isAuth: !!localStorage.getItem('token')
},
getters: {
isLoggedIn(state) {
return state.isAuth
}
},
mutations: {
authenticate(token, expiration) {
localStorage.setItem('token', token)
localStorage.setItem('expiration', expiration)
}
},
actions: {
authenticate: ({ commit }, token, expiration) => commit('authenticate', token, expiration)
}
})
- метод входа -
login() {
var data = {
client_id: 2,
client_secret: '**************************',
grant_type: 'password',
username: this.email,
password: this.password
}
// send data
this.$http.post('oauth/token', data)
.then(response => {
// send the parameters to the action
this.$store.dispatch({
type: 'authenticate',
token: response.body.access_token,
expiration: response.body.expires_in + Date.now()
})
})
}
Буду очень благодарен за любую помощь!
action
Проще говоря, вам нужно собрать полезную нагрузку в массив ключей.
Затем отправьте полезную нагрузку прямо в действие
Никаких изменений в ваших действиях
В вашей мутации вызовите значения с помощью ключа
источник
Я думаю, что это может быть так же просто, как предположить, что вы собираетесь передать несколько параметров своему действию, поскольку вы читаете, что действия принимают только два параметра,
context
иpayload
это ваши данные, которые вы хотите передать в действии, поэтому давайте рассмотрим примерНастройка действия
вместо того
делать
Вызов (отправка) Действие
вместо того
делать
надеюсь, это поможет
источник