Estou tentando autenticar um usuário usando o passaporte do vuejs e do laravel.
Não consigo descobrir como enviar vários parâmetros para a mutação vuex por meio de uma ação.
- loja -
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 login -
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()
})
})
}
Ficaria muito grato por qualquer tipo de ajuda!
action
Em termos simples, você precisa construir sua carga útil em uma matriz de chave
Em seguida, envie a carga útil diretamente para a ação
Nenhuma mudança em sua ação
Em sua mutação, chame os valores com a chave
fonte
Eu acho que isso pode ser tão simples, vamos supor que você passará vários parâmetros para sua ação conforme você lê, as ações aceitam apenas dois parâmetros
context
epayload
quais são os dados que você deseja passar em ação, então vamos dar um exemploConfigurando Ação
ao invés de
Faz
Ação de chamada (despacho)
ao invés de
Faz
espero que isso ajude
fonte