Estoy tratando de autenticar a un usuario usando vuejs y el pasaporte de laravel.
No puedo averiguar cómo enviar múltiples parámetros a la mutación vuex a través de una acción.
- Tienda -
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)
}
})
- método de inicio de sesión -
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()
})
})
}
¡Estaría muy agradecido por cualquier tipo de ayuda!
action
En términos simples, necesita construir su carga útil en una matriz de claves
Luego envíe la carga útil directamente a la acción
Sin cambios en tu acción
En tu mutación llama a los valores con la clave
fuente
Creo que esto puede ser tan simple, supongamos que va a pasar varios parámetros a su acción a medida que lee, las acciones aceptan solo dos parámetros
context
ypayload
cuáles son sus datos que desea pasar en acción, así que tomemos un ejemploConfigurar acción
en vez de
hacer
Acción de llamada (despacho)
en vez de
hacer
espero que esto ayude
fuente